aboutsummaryrefslogtreecommitdiffstats
path: root/src/main-afb-daemon.c
diff options
context:
space:
mode:
authorJose Bollo <jose.bollo@iot.bzh>2019-02-21 14:39:59 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2019-03-22 12:21:54 +0100
commit0e2b5f5b7fa3a09abf61c8253efce7c7f2b4c444 (patch)
tree85f54ba7b0301245553e86704d28dfccaa031013 /src/main-afb-daemon.c
parentf2f086fa99e47ca8b3001831ea3548f8758e1222 (diff)
Allow to remove libmicrohttpd (HTTP server)
This allows to remove the dependency to libmicrohttpd. At the end, this will allow either to replace it with an other HTTP library or to fully remove the HTTP server. It also makes a tiny improvement of the conditionnal compilation. Change-Id: I24106659af04453b6693f2cda0939a601391202f Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/main-afb-daemon.c')
-rw-r--r--src/main-afb-daemon.c34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/main-afb-daemon.c b/src/main-afb-daemon.c
index 705c69f9..a7ddf9f9 100644
--- a/src/main-afb-daemon.c
+++ b/src/main-afb-daemon.c
@@ -41,7 +41,6 @@
#endif
#include "afb-args.h"
-#include "afb-hswitch.h"
#include "afb-apiset.h"
#include "afb-autoset.h"
#include "afb-api-so.h"
@@ -49,8 +48,6 @@
# include "afb-api-dbus.h"
#endif
#include "afb-api-ws.h"
-#include "afb-hsrv.h"
-#include "afb-hreq.h"
#include "afb-xreq.h"
#include "afb-session.h"
#include "verbose.h"
@@ -65,6 +62,11 @@
#if WITH_SUPERVISION
# include "afb-supervision.h"
#endif
+#if WITH_LIBMICROHTTPD
+# include "afb-hsrv.h"
+# include "afb-hreq.h"
+# include "afb-hswitch.h"
+#endif
#include "process-name.h"
#include "wrap-json.h"
@@ -288,6 +290,7 @@ static void daemonize()
| http server
| Handles the HTTP server
+--------------------------------------------------------- */
+#if WITH_LIBMICROHTTPD
static int init_alias(void *closure, const char *spec)
{
struct afb_hsrv *hsrv = closure;
@@ -396,6 +399,7 @@ static struct afb_hsrv *start_http_server()
return hsrv;
}
+#endif
/*---------------------------------------------------------
| execute_command
@@ -695,12 +699,15 @@ static void start(int signum, void *arg)
#endif
*traceses = NULL, *traceglob = NULL;
#endif
- const char *workdir, *rootdir, *token, *rootapi;
- struct json_object *settings;
- struct afb_hsrv *hsrv;
+ const char *workdir = NULL, *rootdir = NULL, *token = NULL;
+ struct json_object *settings = NULL;
int max_session_count, session_timeout, api_timeout;
- int no_httpd, http_port;
int rc;
+#if WITH_LIBMICROHTTPD
+ const char *rootapi = NULL;
+ int no_httpd = 0, http_port = -1;
+ struct afb_hsrv *hsrv;
+#endif
afb_debug("start-entry");
@@ -710,14 +717,12 @@ static void start(int signum, void *arg)
exit(1);
}
- settings = NULL;
- no_httpd = 0;
- http_port = -1;
- rootapi = token = NULL;
rc = wrap_json_unpack(main_config, "{"
"ss ss s?s"
"si si si"
+#if WITH_LIBMICROHTTPD
"s?b s?i s?s"
+#endif
#if WITH_AFB_HOOK
#if !defined(REMOVE_LEGACY_TRACE)
"s?s s?s"
@@ -735,10 +740,11 @@ static void start(int signum, void *arg)
"cntxtimeout", &session_timeout,
"session-max", &max_session_count,
+#if WITH_LIBMICROHTTPD
"no-httpd", &no_httpd,
"port", &http_port,
"rootapi", &rootapi,
-
+#endif
#if WITH_AFB_HOOK
#if !defined(REMOVE_LEGACY_TRACE)
"tracesvc", &tracesvc,
@@ -779,6 +785,7 @@ static void start(int signum, void *arg)
goto error;
}
+#if WITH_LIBMICROHTTPD
/* setup HTTP */
if (!no_httpd) {
if (http_port < 0) {
@@ -795,6 +802,7 @@ static void start(int signum, void *arg)
goto error;
}
}
+#endif
/* configure the daemon */
afb_export_set_config(settings);
@@ -865,6 +873,7 @@ static void start(int signum, void *arg)
#endif
/* start the HTTP server */
+#if WITH_LIBMICROHTTPD
afb_debug("start-http");
if (!no_httpd) {
if (!afb_hreq_init_cookie(http_port, rootapi, session_timeout)) {
@@ -876,6 +885,7 @@ static void start(int signum, void *arg)
if (hsrv == NULL)
goto error;
}
+#endif
/* run the startup calls */
afb_debug("start-call");