/*
- * Copyright (C) 2015-2018 "IoT.bzh"
+ * Copyright (C) 2015-2019 "IoT.bzh"
* Author "Fulup Ar Foll"
* Author José Bollo <jose.bollo@iot.bzh>
*
#include "afb-common.h"
#include "afb-export.h"
#include "afb-monitor.h"
+#if WITH_AFB_HOOK
#include "afb-hook.h"
#include "afb-hook-flags.h"
+#endif
#include "afb-debug.h"
#if defined(WITH_SUPERVISION)
# include "afb-supervision.h"
#include "wrap-json.h"
#include "jobs.h"
#include "sig-monitor.h"
+#include "watchdog.h"
#if !defined(DEFAULT_BINDER_INTERFACE)
# define DEFAULT_BINDER_INTERFACE NULL
static void start(int signum, void *arg)
{
- const char *tracereq, *traceapi, *traceevt, *traceses, *tracesvc, *traceditf, *traceglob;
+#if WITH_AFB_HOOK
+ const char *tracereq = NULL, *traceapi = NULL, *traceevt = NULL,
+#if !defined(REMOVE_LEGACY_TRACE)
+ *tracesvc = NULL, *traceditf = NULL,
+#endif
+ *traceses = NULL, *traceglob = NULL;
+#endif
const char *workdir, *rootdir, *token, *rootapi;
struct json_object *settings;
struct afb_hsrv *hsrv;
}
settings = NULL;
- token = rootapi = tracesvc = traceditf = tracereq =
- traceapi = traceevt = traceses = traceglob = NULL;
no_httpd = 0;
http_port = -1;
+ rootapi = token = NULL;
rc = wrap_json_unpack(main_config, "{"
"ss ss s?s"
"si si si"
"s?b s?i s?s"
- "s?o"
+#if WITH_AFB_HOOK
#if !defined(REMOVE_LEGACY_TRACE)
"s?s s?s"
#endif
"s?s s?s s?s s?s s?s"
+#endif
+ "s?o"
"}",
"rootdir", &rootdir,
"port", &http_port,
"rootapi", &rootapi,
- "set", &settings,
+#if WITH_AFB_HOOK
#if !defined(REMOVE_LEGACY_TRACE)
"tracesvc", &tracesvc,
"traceditf", &traceditf,
"traceapi", &traceapi,
"traceevt", &traceevt,
"traceses", &traceses,
- "traceglob", &traceglob
+ "traceglob", &traceglob,
+#endif
+ "set", &settings
);
if (rc < 0) {
ERROR("Unable to get start config");
}
#endif
+#if WITH_AFB_HOOK
/* install hooks */
if (tracereq)
afb_hook_create_xreq(NULL, NULL, NULL, afb_hook_flags_xreq_from_text(tracereq), NULL, NULL);
afb_hook_create_session(NULL, afb_hook_flags_session_from_text(traceses), NULL, NULL);
if (traceglob)
afb_hook_create_global(afb_hook_flags_global_from_text(traceglob), NULL, NULL);
+#endif
/* load bindings and apis */
afb_debug("start-load");
/* ready */
sd_notify(1, "READY=1");
+
+ /* activate the watchdog */
+#if HAS_WATCHDOG
+ if (watchdog_activate() < 0)
+ ERROR("can't start the watchdog");
+#endif
+
return;
error:
exit(1);