Add hooking for events
[src/app-framework-binder.git] / src / main.c
index 3541e44..fc1ec13 100644 (file)
  */
 
 #define _GNU_SOURCE
-#define NO_BINDING_VERBOSE_MACRO
+#define AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO
 
 #include <stdlib.h>
+#include <stdio.h>
 #include <stdint.h>
 #include <signal.h>
 #include <string.h>
@@ -45,6 +46,7 @@
 #include "afb-session.h"
 #include "verbose.h"
 #include "afb-common.h"
+#include "afb-monitor.h"
 #include "afb-hook.h"
 #include "sd-fds.h"
 
@@ -111,7 +113,6 @@ static void exit_handler()
                killpg(0, SIGTERM);
        else if (childpid > 0)
                killpg(childpid, SIGTERM);
-       exit(0);
 }
 
 static void on_sigterm(int signum, siginfo_t *info, void *uctx)
@@ -560,6 +561,8 @@ static void start()
                ERROR("can't create main api set");
                goto error;
        }
+       if (afb_monitor_init() < 0) {
+               ERROR("failed to setup monitor");
                goto error;
        }
 
@@ -568,6 +571,10 @@ static void start()
                afb_hook_create_xreq(NULL, NULL, NULL, config->tracereq, NULL, NULL);
        if (config->traceditf)
                afb_hook_create_ditf(NULL, config->traceditf, NULL, NULL);
+       if (config->tracesvc)
+               afb_hook_create_svc(NULL, config->tracesvc, NULL, NULL);
+       if (config->traceevt)
+               afb_hook_create_evt(NULL, config->traceevt, NULL, NULL);
 
        /* load bindings */
        apiset_start_list(config->dbus_clients, afb_api_dbus_add_client, "the afb-dbus client");