From 82a9d796219de863253b96340bb03c4506c8c676 Mon Sep 17 00:00:00 2001 From: Jose Bollo Date: Tue, 3 Dec 2019 00:12:31 +0100 Subject: main-afb-daemon: manage listening interfaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change allows to specify interfaces to serve explicitely. By default the option --port=PORT lead to serving interface of specification "tcp:*:PORT". Meaning that all interfaces are listened. This is intended to be used with localuser family of hostnames. Bug-AGL: SPEC-2968 Signed-off-by: José Bollo Change-Id: I3fb2a77a5c03dd4c2118ebe3267794f79bfc0262 --- src/afb-args.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/afb-args.c') diff --git a/src/afb-args.c b/src/afb-args.c index 50bdc979..9d156088 100644 --- a/src/afb-args.c +++ b/src/afb-args.c @@ -119,6 +119,7 @@ #define SET_DAEMON 'D' #define SET_EXEC 'e' #define GET_HELP 'h' +#define ADD_INTERFACE 'i' #define SET_LOG 'l' #if defined(WITH_MONITORING_OPTION) #define SET_MONITORING 'M' @@ -158,7 +159,8 @@ static struct option_desc optdefs[] = { {SET_NAME, 1, "name", "Set the visible name"}, - {SET_PORT, 1, "port", "HTTP listening TCP port [default " d2s(DEFAULT_HTTP_PORT) "]"}, + {SET_PORT, 1, "port", "HTTP listening TCP port of all interfaces [default " d2s(DEFAULT_HTTP_PORT) "]"}, + {ADD_INTERFACE, 1, "interface", "Add HTTP listening interface (ex: tcp:localhost:8080)"}, {SET_ROOT_HTTP, 1, "roothttp", "HTTP Root Directory [default no root http (files not served but apis still available)]"}, {SET_ROOT_BASE, 1, "rootbase", "Angular Base Root URL [default /opa]"}, {SET_ROOT_API, 1, "rootapi", "HTML Root API URL [default /api]"}, @@ -241,7 +243,6 @@ static const struct { int optid; int valdef; } default_optint_values[] = { - { SET_PORT, DEFAULT_HTTP_PORT }, { SET_API_TIMEOUT, DEFAULT_API_TIMEOUT }, { SET_CACHE_TIMEOUT, DEFAULT_CACHE_TIMEOUT }, { SET_SESSION_TIMEOUT, DEFAULT_SESSION_TIMEOUT }, @@ -841,6 +842,7 @@ static void parse_arguments_inner(int argc, char **argv, struct json_object *con case ADD_WS_CLIENT: case ADD_WS_SERVICE: case ADD_AUTO_API: + case ADD_INTERFACE: config_add_optstr(config, optid); break; @@ -985,6 +987,9 @@ static void fulfill_config(struct json_object *config) if (!config_has(config, default_optstr_values[i].optid)) config_set_str(config, default_optstr_values[i].optid, default_optstr_values[i].valdef); + if (!config_has(config, SET_PORT) && !config_has(config, ADD_INTERFACE) && !config_has_bool(config, SET_NO_HTTPD)) + config_set_int(config, SET_PORT, DEFAULT_HTTP_PORT); + // default AUTH_TOKEN if (config_has_bool(config, SET_RANDOM_TOKEN)) config_del(config, SET_TOKEN); -- cgit 1.2.3-korg