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': [