aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/afb-api-ws.c14
-rw-r--r--src/afb-api-ws.h4
-rw-r--r--src/main.c2
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);
diff --git a/src/main.c b/src/main.c
index 150b7810..df35d88d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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");