aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-12-05 17:29:24 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2017-12-07 09:26:39 +0100
commitf1b9dde05e420a06ee4a3f53d8bbd2739e255fb3 (patch)
tree490ccff433c466667be2fc48d8b845cc41ca2ce2
parentf998f25fca8fc2cb4d1ff6bc6b9dd3b7ba5322ce (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.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");