diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-12-05 17:29:24 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-12-05 17:29:24 +0100 |
commit | adb89e71f1c366b0cabdf9e04aaed60b84a96f0e (patch) | |
tree | ab47e39e9d04b5b611d0431993d9e172879735e3 | |
parent | ddeda4952121007e8b0a7207528901be911ce2b4 (diff) |
afb-api-ws: Make weak ws-client by default (to be fixed)
The case of unicens service that can be here or not creates
problem to the binding 4a when the service is not here.
This commits makes the requirement of ws-client
socket optional. This unblocks the situation but need to
be fixed later.
Bug-AGL: SPEC-1151
Change-Id: I569fa781c003492a4c6a7ad84c5b140ecdb05b65
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-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"); |