X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain.c;h=dee79d865e47f58c11d3513367e635b38048bd24;hb=15059fa1ed5f94c3b5d96357c9be6adfa5ea37b0;hp=d099e1f82802b8b6f8b8d5c09298508e37f4c1b1;hpb=71762eeb3fc6e89ee17be512d295d305b2664142;p=src%2Fapp-framework-binder.git diff --git a/src/main.c b/src/main.c index d099e1f8..dee79d86 100644 --- a/src/main.c +++ b/src/main.c @@ -29,6 +29,10 @@ #include #include +#if !defined(NO_CALL_PERSONALITY) +#include +#endif + #include #include @@ -49,6 +53,7 @@ #include "afb-monitor.h" #include "afb-hook.h" #include "sd-fds.h" +#include "afb-debug.h" /* if SELF_PGROUP == 0 the launched command is the group leader @@ -346,7 +351,7 @@ static char *instanciate_string(char *arg, const char *port, const char *token) switch(*++it) { case 'p': wr = stpcpy(wr, port); break; case 't': wr = stpcpy(wr, token); break; - default: *wr++ = SUBST_CHAR; + default: *wr++ = SUBST_CHAR; /*@fallthrough@*/ case SUBST_CHAR: *wr++ = *it; } arg = ++it; @@ -533,6 +538,8 @@ static void start(int signum) { struct afb_hsrv *hsrv; + afb_debug("start-entry"); + if (signum) { ERROR("start aborted: received signal %s", strsignal(signum)); exit(1); @@ -582,6 +589,7 @@ static void start(int signum) afb_hook_create_evt(NULL, config->traceevt, NULL, NULL); /* load bindings */ + afb_debug("start-load"); apiset_start_list(config->dbus_clients, afb_api_dbus_add_client, "the afb-dbus client"); apiset_start_list(config->ws_clients, afb_api_ws_add_client, "the afb-websocket client"); apiset_start_list(config->ldpaths, afb_api_so_add_pathset, "the binding path set"); @@ -593,10 +601,15 @@ static void start(int signum) DEBUG("Init config done"); /* start the services */ + afb_debug("start-start"); +#if !defined(NO_CALL_PERSONALITY) + personality((unsigned long)-1L); +#endif if (afb_apiset_start_all_services(main_apiset, 1) < 0) goto error; /* start the HTTP server */ + afb_debug("start-http"); if (!config->noHttpd) { hsrv = start_http_server(); if (hsrv == NULL) @@ -604,9 +617,11 @@ static void start(int signum) } /* run the startup calls */ + afb_debug("start-call"); run_startup_calls(); /* run the command */ + afb_debug("start-exec"); if (execute_command() < 0) goto error; @@ -624,6 +639,8 @@ error: int main(int argc, char *argv[]) { + afb_debug("main-entry"); + // let's run this program with a low priority nice(20); @@ -632,6 +649,8 @@ int main(int argc, char *argv[]) // ------------- Build session handler & init config ------- config = afb_config_parse_arguments(argc, argv); + afb_debug("main-args"); + // --------- run ----------- if (config->background) { // --------- in background mode ----------- @@ -646,6 +665,8 @@ int main(int argc, char *argv[]) /* set the daemon environment */ setup_daemon(); + afb_debug("main-start"); + /* enter job processing */ jobs_start(3, 0, 50, start); WARNING("hoops returned from jobs_enter! [report bug]");