main: Isolate HTTP initialization
authorJosé Bollo <jose.bollo@iot.bzh>
Wed, 7 Feb 2018 10:27:52 +0000 (11:27 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 9 Feb 2018 16:26:05 +0000 (17:26 +0100)
Initializations linked to HTTP are deferred
until starting the HTTP server.

Change-Id: I917c4c5db3c3ae894ee60fd16b9e09d4185fcdb4
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/main.c

index 6432540..b8bad94 100644 (file)
@@ -546,12 +546,6 @@ static void start(int signum, void *arg)
                exit(1);
        }
 
-       // ------------------ sanity check ----------------------------------------
-       if (config->httpdPort <= 0) {
-               ERROR("no port is defined");
-               goto error;
-       }
-
        /* set the directories */
        mkdir(config->workdir, S_IRWXU | S_IRGRP | S_IXGRP);
        if (chdir(config->workdir) < 0) {
@@ -568,10 +562,6 @@ static void start(int signum, void *arg)
                ERROR("initialisation of session manager failed");
                goto error;
        }
-       if (!afb_hreq_init_cookie(config->httpdPort, config->rootapi, config->cntxTimeout)) {
-               ERROR("initialisation of cookies failed");
-               goto error;
-       }
        main_apiset = afb_apiset_create("main", config->apiTimeout);
        if (!main_apiset) {
                ERROR("can't create main api set");
@@ -616,6 +606,16 @@ static void start(int signum, void *arg)
        /* start the HTTP server */
        afb_debug("start-http");
        if (!config->noHttpd) {
+               if (config->httpdPort <= 0) {
+                       ERROR("no port is defined");
+                       goto error;
+               }
+
+               if (!afb_hreq_init_cookie(config->httpdPort, config->rootapi, config->cntxTimeout)) {
+                       ERROR("initialisation of HTTP cookies failed");
+                       goto error;
+               }
+
                hsrv = start_http_server();
                if (hsrv == NULL)
                        goto error;