From: José Bollo Date: Tue, 5 Dec 2017 16:29:24 +0000 (+0100) Subject: afb-api-ws: Make weak ws-client by default (to be fixed) X-Git-Tag: 4.99.4^0 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=commitdiff_plain;h=f1b9dde05e420a06ee4a3f53d8bbd2739e255fb3 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 --- 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");