summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose Bollo <jose.bollo@iot.bzh>2018-09-05 14:25:50 +0200
committerJose Bollo <jose.bollo@iot.bzh>2018-09-05 17:04:51 +0200
commit72385abda940862a920442a330fb6aa82673400f (patch)
treeec56fa44b960187546ba96d602dbf8ecc5a685bb
parenta02a1627a954432cc65ec981cada8ba420d7ad2f (diff)
main-afb-daemon: Export API after initialization
Exporting API after initialization is a simple technic to avoid interleaving of incoming foreign calls during initialisation. Also a tiny fix in jobs.c and afb-socket.c. Bug-AGL: SPEC-1724 Change-Id: I59596256481c8afcd88755ec303bf7f881b55c12 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
-rw-r--r--src/afb-socket.c2
-rw-r--r--src/jobs.c2
-rw-r--r--src/main-afb-daemon.c10
3 files changed, 9 insertions, 5 deletions
diff --git a/src/afb-socket.c b/src/afb-socket.c
index ebbc58ec..77b5edf8 100644
--- a/src/afb-socket.c
+++ b/src/afb-socket.c
@@ -217,7 +217,7 @@ static int open_systemd(const char *spec)
{
#if defined(NO_SYSTEMD_ACTIVATION)
errno = EAFNOSUPPORT;
- fd = -1;
+ return -1;
#else
return afb_systemd_fds_for(spec);
#endif
diff --git a/src/jobs.c b/src/jobs.c
index a6357c87..9768f269 100644
--- a/src/jobs.c
+++ b/src/jobs.c
@@ -160,7 +160,7 @@ static struct job *job_create(
job = malloc(sizeof *job);
pthread_mutex_lock(&mutex);
if (!job) {
- errno = -ENOMEM;
+ errno = ENOMEM;
goto end;
}
}
diff --git a/src/main-afb-daemon.c b/src/main-afb-daemon.c
index 06aeb58d..77d7ab29 100644
--- a/src/main-afb-daemon.c
+++ b/src/main-afb-daemon.c
@@ -761,15 +761,13 @@ static void start(int signum, void *arg)
if (traceglob)
afb_hook_create_global(afb_hook_flags_global_from_text(traceglob), NULL, NULL);
- /* load bindings */
+ /* load bindings and apis */
afb_debug("start-load");
apiset_start_list("binding", afb_api_so_add_binding, "the binding");
apiset_start_list("ldpaths", afb_api_so_add_pathset_fails, "the binding path set");
apiset_start_list("weak-ldpaths", afb_api_so_add_pathset_nofails, "the weak binding path set");
apiset_start_list("auto-api", afb_autoset_add_any, "the automatic api path set");
- apiset_start_list("ws-server", afb_api_ws_add_server, "the afb-websocket service");
#if defined(WITH_DBUS_TRANSPARENCY)
- apiset_start_list("dbus-server", afb_api_dbus_add_server, "the afb-dbus service");
apiset_start_list("dbus-client", afb_api_dbus_add_client, "the afb-dbus client");
#endif
apiset_start_list("ws-client", afb_api_ws_add_client_weak, "the afb-websocket client");
@@ -784,6 +782,12 @@ static void start(int signum, void *arg)
if (afb_apiset_start_all_services(main_apiset) < 0)
goto error;
+ /* export started apis */
+ apiset_start_list("ws-server", afb_api_ws_add_server, "the afb-websocket service");
+#if defined(WITH_DBUS_TRANSPARENCY)
+ apiset_start_list("dbus-server", afb_api_dbus_add_server, "the afb-dbus service");
+#endif
+
/* start the HTTP server */
afb_debug("start-http");
if (!no_httpd) {