summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-08-25 13:09:13 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-08-25 13:09:13 +0200
commitb74a7373e768736dc12057e0ef9744dcc8a93443 (patch)
treebe827b6f6dfe9411aaff2768044f850812bd9df0
parent4e925980d16a7468a55ad2c23cc29ec51311ef6d (diff)
Add option --weak-ldpaths (for weak loading path)
This option allows to specify a loading path where binding that fails on load are ignored. Change-Id: Ie0646f88ba9207dd117737a8b251a7a42f424f02 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r--src/afb-config.c9
-rw-r--r--src/afb-config.h1
-rw-r--r--src/main.c1
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");