From b74a7373e768736dc12057e0ef9744dcc8a93443 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Bollo?= Date: Fri, 25 Aug 2017 13:09:13 +0200 Subject: [PATCH] Add option --weak-ldpaths (for weak loading path) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This option allows to specify a loading path where binding that fails on load are ignored. Change-Id: Ie0646f88ba9207dd117737a8b251a7a42f424f02 Signed-off-by: José Bollo --- src/afb-config.c | 9 +++++++-- src/afb-config.h | 1 + src/main.c | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/afb-config.c b/src/afb-config.c index 98dd4e55..18f7fa7a 100644 --- a/src/afb-config.c +++ b/src/afb-config.c @@ -68,7 +68,7 @@ #define SET_LDPATH 13 #define SET_APITIMEOUT 14 #define SET_CNTXTIMEOUT 15 - +#define SET_WEAK_LDPATH 16 #define SET_MODE 18 @@ -136,6 +136,7 @@ static AFB_options cliOptions[] = { {SET_LDPATH, 1, "ldpaths", "Load bindings from dir1:dir2:... [default = " BINDING_INSTALL_DIR "]"}, {SO_BINDING, 1, "binding", "Load the binding of path"}, + {SET_WEAK_LDPATH, 1, "weak-ldpaths","Same as --ldpaths but ignore erros"}, {SET_AUTH_TOKEN, 1, "token", "Initial Secret [default=no-session, --token= for session without authentication]"}, {SET_RNDTOKEN, 0, "random-token","Creates a random token"}, @@ -458,6 +459,10 @@ static void parse_arguments(int argc, char **argv, struct afb_config *config) list_add(&config->ldpaths, argvalstr(optc)); break; + case SET_WEAK_LDPATH: + list_add(&config->weak_ldpaths, argvalstr(optc)); + break; + case ADD_CALL: list_add(&config->calls, argvalstr(optc)); break; @@ -607,7 +612,7 @@ static void config_set_default(struct afb_config *config) if (config->rootapi == NULL) config->rootapi = "/api"; - if (config->ldpaths == NULL) + if (config->ldpaths == NULL && config->weak_ldpaths == NULL) list_add(&config->ldpaths, BINDING_INSTALL_DIR); // if no config dir create a default path from uploaddir diff --git a/src/afb-config.h b/src/afb-config.h index 4ff5d141..a81d296e 100644 --- a/src/afb-config.h +++ b/src/afb-config.h @@ -43,6 +43,7 @@ struct afb_config { struct afb_config_list *ws_servers; struct afb_config_list *so_bindings; struct afb_config_list *ldpaths; + struct afb_config_list *weak_ldpaths; struct afb_config_list *calls; char **exec; diff --git a/src/main.c b/src/main.c index 84bdc610..3999b77a 100644 --- a/src/main.c +++ b/src/main.c @@ -593,6 +593,7 @@ static void start(int signum) 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->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"); apiset_start_list(config->so_bindings, afb_api_so_add_binding, "the binding"); apiset_start_list(config->dbus_servers, afb_api_dbus_add_server, "the afb-dbus service"); -- 2.16.6