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-07 09:26:39 +0100 |
commit | f1b9dde05e420a06ee4a3f53d8bbd2739e255fb3 (patch) | |
tree | 490ccff433c466667be2fc48d8b845cc41ca2ce2 | |
parent | f998f25fca8fc2cb4d1ff6bc6b9dd3b7ba5322ce (diff) |
afb-api-ws: Make weak ws-client by default (to be fixed)eel_4.99.4eel/4.99.44.99.4
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"); |