/*
- * Copyright (C) 2015-2019 "IoT.bzh"
+ * Copyright (C) 2015-2020 "IoT.bzh"
* Author José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
#define _d2s_(x) #x
#define d2s(x) _d2s_(x)
-#if !defined(BINDING_INSTALL_DIR)
-#error "you should define BINDING_INSTALL_DIR"
-#endif
#if !defined(AFB_VERSION)
#error "you should define AFB_VERSION"
#endif
#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'
{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]"},
{SET_ROOT_DIR, 1, "rootdir", "Root Directory of the application [default: workdir] relative to workdir"},
#if WITH_DYNAMIC_BINDING
- {ADD_LDPATH, 1, "ldpaths", "Load bindings from dir1:dir2:... [default = " BINDING_INSTALL_DIR "]"},
+
+ {ADD_LDPATH, 1, "ldpaths", "Load bindings from dir1:dir2:..."
+#if defined(INTRINSIC_BINDING_DIR)
+ "[default = " INTRINSIC_BINDING_DIR "]"
+#endif
+ },
{ADD_BINDING, 1, "binding", "Load the binding of path"},
{ADD_WEAK_LDPATH, 1, "weak-ldpaths","Same as --ldpaths but ignore errors"},
{SET_NO_LDPATH, 0, "no-ldpaths", "Discard default ldpaths loading"},
};
#if defined(WITH_MONITORING_OPTION)
-static const char MONITORING_ALIAS[] = "/monitoring:"BINDING_INSTALL_DIR"/monitoring";
+static const char MONITORING_ALIAS[] = "/monitoring:"INTRINSIC_BINDING_DIR"/monitoring";
#endif
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 },
#endif
"HOOK "
-#if WITH_TRACE
+#if WITH_AFB_TRACE
"+"
#else
"-"
"["
#if WITH_DYNAMIC_BINDING
- "BINDINGS "
"+"
#else
"-"
#endif
+ "BINDINGS "
#if WITH_LEGACY_BINDING_V1
- "+"
-#else
- "-"
+ "+V1 "
#endif
- "V1 "
#if WITH_LEGACY_BINDING_VDYN
- "+"
-#else
- "-"
+ "+VDYN "
#endif
- "VDYN "
#if WITH_LEGACY_BINDING_V2
- "+"
-#else
- "-"
+ "+V2 "
#endif
- "V2 +V3]\n"
+ "+V3]\n"
"\n",
AFB_VERSION
);
fprintf(file,
- " Copyright (C) 2015-2019 \"IoT.bzh\"\n"
+ " Copyright (C) 2015-2020 \"IoT.bzh\"\n"
" AFB comes with ABSOLUTELY NO WARRANTY.\n"
" Licence Apache 2\n"
"\n");
case ADD_WS_CLIENT:
case ADD_WS_SERVICE:
case ADD_AUTO_API:
+ case ADD_INTERFACE:
config_add_optstr(config, optid);
break;
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);
-#if WITH_DYNAMIC_BINDING
+#if WITH_DYNAMIC_BINDING && defined(INTRINSIC_BINDING_DIR)
if (!config_has(config, ADD_LDPATH) && !config_has(config, ADD_WEAK_LDPATH) && !config_has_bool(config, SET_NO_LDPATH))
- config_add_str(config, ADD_LDPATH, BINDING_INSTALL_DIR);
+ config_add_str(config, ADD_LDPATH, INTRINSIC_BINDING_DIR);
#endif
#if defined(WITH_MONITORING_OPTION)