diff options
-rw-r--r-- | src/afb-api-ws.c | 14 | ||||
-rw-r--r-- | src/afb-api-ws.h | 4 | ||||
-rw-r--r-- | src/main.c | 2 |
3 files changed, 16 insertions, 4 deletions
diff --git a/src/afb-api-ws.c b/src/afb-api-ws.c index 7e0adb7e..1a463587 100644 --- a/src/afb-api-ws.c +++ b/src/afb-api-ws.c @@ -203,7 +203,7 @@ static int api_ws_socket(const char *path, int server) /**********************************************************************************/ -int afb_api_ws_add_client(const char *path, struct afb_apiset *apiset) +int afb_api_ws_add_client(const char *path, struct afb_apiset *apiset, int strong) { struct api_ws *apiws; struct afb_stub_ws *stubws; @@ -238,7 +238,17 @@ error3: error2: free(apiws); error: - return -1; + return -!!strong; +} + +int afb_api_ws_add_client_strong(const char *path, struct afb_apiset *apiset) +{ + return afb_api_ws_add_client(path, apiset, 1); +} + +int afb_api_ws_add_client_weak(const char *path, struct afb_apiset *apiset) +{ + return afb_api_ws_add_client(path, apiset, 0); } static int api_ws_server_accept_client(struct api_ws *apiws, int fd) diff --git a/src/afb-api-ws.h b/src/afb-api-ws.h index 44dedca3..fadb3cb5 100644 --- a/src/afb-api-ws.h +++ b/src/afb-api-ws.h @@ -20,7 +20,9 @@ struct afb_apiset; -extern int afb_api_ws_add_client(const char *path, struct afb_apiset *apiset); +extern int afb_api_ws_add_client(const char *path, struct afb_apiset *apiset, int strong); +extern int afb_api_ws_add_client_strong(const char *path, struct afb_apiset *apiset); +extern int afb_api_ws_add_client_weak(const char *path, struct afb_apiset *apiset); extern int afb_api_ws_add_server(const char *path, struct afb_apiset *apiset); @@ -593,7 +593,7 @@ static void start(int signum) afb_debug("start-load"); apiset_start_list(config->so_bindings, afb_api_so_add_binding, "the binding"); 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->ws_clients, afb_api_ws_add_client_weak, "the afb-websocket client"); apiset_start_list(config->ldpaths, afb_api_so_add_pathset_fails, "the binding path set"); apiset_start_list(config->weak_ldpaths, afb_api_so_add_pathset_nofails, "the weak binding path set"); |