Add hooking of daemon interface
[src/app-framework-binder.git] / src / main.c
index 1c85411..a1b09c1 100644 (file)
@@ -99,11 +99,10 @@ static void start_list(struct afb_config_list *list,
  +--------------------------------------------------------- */
 static void exit_handler()
 {
-       /* TODO: check whether using SIGHUP isn't better */
        if (SELF_PGROUP)
-               killpg(0, SIGKILL);
+               killpg(0, SIGHUP);
        else if (childpid > 0)
-               killpg(childpid, SIGKILL);
+               killpg(childpid, SIGHUP);
 }
 
 /*----------------------------------------------------------
@@ -412,7 +411,13 @@ static void start()
                goto error;
        }
 
-       afb_api_so_set_timeout(config->apiTimeout);
+       /* install hooks */
+       if (config->tracereq)
+               afb_hook_create_xreq(NULL, NULL, NULL, config->tracereq, NULL, NULL);
+       if (config->traceditf)
+               afb_hook_create_ditf(NULL, config->traceditf, NULL, NULL);
+
+       afb_apis_set_timeout(config->apiTimeout);
        start_list(config->dbus_clients, afb_api_dbus_add_client, "the afb-dbus client");
        start_list(config->ws_clients, afb_api_ws_add_client, "the afb-websocket client");
        start_list(config->ldpaths, afb_api_so_add_pathset, "the binding path set");
@@ -436,10 +441,6 @@ static void start()
 
        DEBUG("Init config done");
 
-       /* install trace of requests */
-       if (config->tracereq)
-               afb_hook_req_create(NULL, NULL, NULL, config->tracereq, NULL, NULL);
-
        /* start the services */
        if (afb_apis_start_all_services(1) < 0)
                goto error;
@@ -471,12 +472,11 @@ int main(int argc, char *argv[])
        // let's run this program with a low priority
        nice(20);
 
-       LOGAUTH("afb-daemon");
-
        sd_fds_init();
 
        // ------------- Build session handler & init config -------
        config = afb_config_parse_arguments(argc, argv);
+       INFO("running with pid %d", getpid());
 
        // --------- run -----------
        if (config->background) {
@@ -489,7 +489,7 @@ int main(int argc, char *argv[])
        }
 
        /* handle groups */
-//     atexit(exit_handler);
+       atexit(exit_handler);
 
        /* ignore any SIGPIPE */
        signal(SIGPIPE, SIG_IGN);