supervision: Add supervision and supervisor
[src/app-framework-binder.git] / src / main.c
index 6432540..c05556d 100644 (file)
@@ -54,6 +54,7 @@
 #include "sd-fds.h"
 #include "afb-debug.h"
 #include "process-name.h"
+#include "afb-supervision.h"
 
 /*
    if SELF_PGROUP == 0 the launched command is the group leader
@@ -546,12 +547,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 +563,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");
@@ -581,6 +572,10 @@ static void start(int signum, void *arg)
                ERROR("failed to setup monitor");
                goto error;
        }
+       if (afb_supervision_init() < 0) {
+               ERROR("failed to setup supervision");
+               goto error;
+       }
 
        /* install hooks */
        if (config->tracereq)
@@ -616,6 +611,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;