afb-api-ws: Make weak ws-client by default (to be fixed) 4.99.4 eel/4.99.4 eel_4.99.4
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 5 Dec 2017 16:29:24 +0000 (17:29 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Thu, 7 Dec 2017 08:26:39 +0000 (09:26 +0100)
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>
src/afb-api-ws.c
src/afb-api-ws.h
src/main.c

index 7e0adb7..1a46358 100644 (file)
@@ -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)
index 44dedca..fadb3cb 100644 (file)
@@ -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);
 
index 150b781..df35d88 100644 (file)
@@ -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");