webserver: Move web server functionality into webservd

Moved libmicrohttpd from libwebserv to webservd daemon. Added the
D-Bus interface between the web server daemon and client library.

Updated privetd to use the new interface.

BUG=brillo:10
TEST=`FEATURES=test emerge-link libwebserv privetd`
CQ-DEPEND=CL:245780,CL:245118,CL:*195757

Change-Id: I26bfab64c6a0fd9460a47fd3fa9205c89abb943a
Reviewed-on: https://chromium-review.googlesource.com/245980
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/webserver.gyp b/webserver.gyp
index 8376c2b..f101abc 100644
--- a/webserver.gyp
+++ b/webserver.gyp
@@ -13,20 +13,23 @@
       'target_name': 'libwebserv-<(libbase_ver)',
       'type': 'shared_library',
       'variables': {
-        'exported_deps': [
-          'libmicrohttpd',
-        ],
-        'deps': ['<@(exported_deps)'],
-        'dbus_adaptors_out_dir': 'include/webservd',
-        'dbus_service_config': 'webservd/dbus_bindings/dbus-service-config.json',
+        # Not using dbus_service_config here deliberately in order not to
+        # get tied to some constant service name, since it will be
+        # provided by the consumer of libwebserv library.
+        'dbus_service_config': '',
+        'dbus_adaptors_out_dir': 'include/libwebserv',
       },
-      'includes': ['../common-mk/deps.gypi'],
+      'includes': [
+        '../common-mk/deps.gypi',
+        '../common-mk/generate-dbus-adaptors.gypi'
+      ],
       'sources': [
-        'libwebserv/connection.cc',
-        'libwebserv/response.cc',
+        'libwebserv/protocol_handler.cc',
         'libwebserv/request.cc',
         'libwebserv/request_handler_callback.cc',
+        'libwebserv/response.cc',
         'libwebserv/server.cc',
+        'libwebserv/dbus_bindings/org.chromium.WebServer.RequestHandler.xml',
       ],
       'actions': [
         {
@@ -35,9 +38,10 @@
             'dbus_service_config': 'webservd/dbus_bindings/dbus-service-config.json',
             'mock_output_file': 'include/webservd/dbus-mocks.h',
             'proxy_output_file': 'include/webservd/dbus-proxies.h',
+            'dbus_adaptors_out_dir': '',
           },
           'sources': [
-            'webservd/dbus_bindings/org.chromium.WebServer.Manager.xml',
+            'webservd/dbus_bindings/org.chromium.WebServer.ProtocolHandler.xml',
             'webservd/dbus_bindings/org.chromium.WebServer.Server.xml',
           ],
           'includes': ['../common-mk/generate-dbus-proxies.gypi'],
@@ -50,18 +54,46 @@
       'variables': {
         'exported_deps': [
           'libmicrohttpd',
+          'openssl',
         ],
         'deps': ['<@(exported_deps)'],
         'dbus_adaptors_out_dir': 'include/webservd',
         'dbus_service_config': 'webservd/dbus_bindings/dbus-service-config.json',
       },
+      'link_settings': {
+        'libraries': [
+          '-lminijail',
+        ],
+      },
       'sources': [
-        'webservd/dbus_bindings/org.chromium.WebServer.Manager.xml',
+        'webservd/dbus_bindings/org.chromium.WebServer.ProtocolHandler.xml',
         'webservd/dbus_bindings/org.chromium.WebServer.Server.xml',
+        'webservd/dbus_protocol_handler.cc',
+        'webservd/dbus_request_handler.cc',
         'webservd/main.cc',
-        'webservd/manager.cc',
+        'webservd/protocol_handler.cc',
+        'webservd/request.cc',
+        'webservd/server.cc',
+        'webservd/utils.cc',
       ],
       'includes': ['../common-mk/generate-dbus-adaptors.gypi'],
+      'actions': [
+        {
+          'action_name': 'generate-libwebserv-proxies',
+          'variables': {
+            # Not using dbus_service_config here deliberately in order not to
+            # get tied to some constant service name, since it will be
+            # provided by the consumer of libwebserv library.
+            'dbus_service_config': '',
+            'mock_output_file': 'include/libwebserv/dbus-mocks.h',
+            'proxy_output_file': 'include/libwebserv/dbus-proxies.h',
+          },
+          'sources': [
+            'libwebserv/dbus_bindings/org.chromium.WebServer.RequestHandler.xml',
+          ],
+          'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+        },
+      ],
     },
   ],
   'conditions': [