From: José Bollo Date: Sun, 27 Aug 2017 12:50:43 +0000 (+0200) Subject: afb-config: rework on option --random-token X-Git-Tag: eel/4.99.1~53 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=df098f275a09531fc545b2e1195c80d52a27656d;p=src%2Fapp-framework-binder.git 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 --- 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 #include -#include - #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"}, @@ -263,18 +260,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 +--------------------------------------------------------- */ @@ -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);