#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
| job for starting the daemon
+--------------------------------------------------------- */
-static void start(int signum)
+static void start(int signum, void *arg)
{
struct afb_hsrv *hsrv;
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) {
}
/* configure the daemon */
- afb_session_init(config->nbSessionMax, config->cntxTimeout, config->token);
- if (!afb_hreq_init_cookie(config->httpdPort, config->rootapi, config->cntxTimeout)) {
- ERROR("initialisation of cookies failed");
+ if (afb_session_init(config->nbSessionMax, config->cntxTimeout, config->token)) {
+ ERROR("initialisation of session manager failed");
goto error;
}
main_apiset = afb_apiset_create("main", config->apiTimeout);
ERROR("failed to setup monitor");
goto error;
}
+ if (afb_supervision_init() < 0) {
+ ERROR("failed to setup supervision");
+ goto error;
+ }
/* install hooks */
if (config->tracereq)
/* 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;
afb_debug("main-start");
/* enter job processing */
- jobs_start(3, 0, 50, start);
+ jobs_start(3, 0, 50, start, NULL);
WARNING("hoops returned from jobs_enter! [report bug]");
return 1;
}