Allow to remove libmicrohttpd (HTTP server)
[src/app-framework-binder.git] / src / main-afb-daemon.c
index 705c69f..a7ddf9f 100644 (file)
@@ -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"
 #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");