diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-08-27 14:50:43 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-08-27 15:00:29 +0200 |
commit | df098f275a09531fc545b2e1195c80d52a27656d (patch) | |
tree | 59af4cedca5fdabc3299c956e81ae2929ee56de7 | |
parent | b2a53cb68658ec297d8b66f4c333a287bf70bc37 (diff) |
afb-config: rework on option --random-token
When set, this option will enforce a random
token in any cases.
Not using the option --token has the same effect
asking for a random token.
So the option now serves to enforce a random token.
Change-Id: Iea2cee44b95d5479c36217d312ab6e8ce6726005
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | src/afb-config.c | 29 | ||||
-rw-r--r-- | src/afb-config.h | 1 |
2 files changed, 8 insertions, 22 deletions
diff --git a/src/afb-config.c b/src/afb-config.c index 2a11458f..b11f8a10 100644 --- a/src/afb-config.c +++ b/src/afb-config.c @@ -25,8 +25,6 @@ #include <limits.h> #include <unistd.h> -#include <uuid/uuid.h> - #include "verbose.h" #include "afb-config.h" #include "afb-hook.h" @@ -47,7 +45,6 @@ #define DEFLT_CACHE_TIMEOUT 100000 // default Static File Chache // [Client Side Cache // 100000~=1day] -#define DEFLT_AUTH_TOKEN NULL // expect for debug should == NULL #define CTX_NBCLIENTS 10 // allow a default of 10 authenticated // clients @@ -149,7 +146,7 @@ static AFB_options cliOptions[] = { {NO_LDPATH, 0, "no-ldpaths", "Discard default ldpaths loading"}, {SET_AUTH_TOKEN, 1, "token", "Initial Secret [default=no-session, --token= for session without authentication]"}, - {SET_RNDTOKEN, 0, "random-token","Creates a random token"}, + {SET_RNDTOKEN, 0, "random-token","Enforce a random token"}, {DISPLAY_VERSION, 0, "version", "Display version and copyright"}, {DISPLAY_HELP, 0, "help", "Display this help"}, @@ -266,18 +263,6 @@ static void printHelp(FILE * file, const char *name) /*---------------------------------------------------------- | adds a string to the list +--------------------------------------------------------- */ -static char *random_token() -{ - static char uuidstr[37]; - uuid_t uuid; - uuid_generate_random(uuid); - uuid_unparse(uuid, uuidstr); - return uuidstr; -} - -/*---------------------------------------------------------- - | adds a string to the list - +--------------------------------------------------------- */ static void list_add(struct afb_config_list **head, char *value) { struct afb_config_list *item; @@ -578,7 +563,8 @@ static void parse_arguments(int argc, char **argv, struct afb_config *config) break; case SET_RNDTOKEN: - config->token = random_token(); + config->random_token = 1; + break; #if defined(WITH_MONITORING_OTPION) case SET_MONITORING: @@ -602,8 +588,7 @@ static void parse_arguments(int argc, char **argv, struct afb_config *config) free(gnuOptions); } -// load config from disk and merge with CLI option -static void config_set_default(struct afb_config *config) +static void fulfill_config(struct afb_config *config) { // default HTTP port if (config->httpdPort == 0) @@ -614,8 +599,8 @@ static void config_set_default(struct afb_config *config) config->apiTimeout = DEFLT_API_TIMEOUT; // default AUTH_TOKEN - if (config->token == NULL) - config->token = DEFLT_AUTH_TOKEN; + if (config->random_token) + config->token = NULL; // cache timeout default one hour if (config->cacheTimeout == 0) @@ -733,7 +718,7 @@ struct afb_config *afb_config_parse_arguments(int argc, char **argv) result = calloc(1, sizeof *result); parse_arguments(argc, argv, result); - config_set_default(result); + fulfill_config(result); if (verbosity >= 3) afb_config_dump(result); return result; diff --git a/src/afb-config.h b/src/afb-config.h index 9e15ca09..56bfa9a5 100644 --- a/src/afb-config.h +++ b/src/afb-config.h @@ -65,6 +65,7 @@ struct afb_config { unsigned noHttpd: 1; unsigned background: 1; /* run in backround mode */ unsigned monitoring: 1; /* activates monitoring */ + unsigned random_token: 1; /* expects a random token */ }; extern struct afb_config *afb_config_parse_arguments(int argc, char **argv); |