aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-08-27 14:50:43 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-08-27 15:00:29 +0200
commitdf098f275a09531fc545b2e1195c80d52a27656d (patch)
tree59af4cedca5fdabc3299c956e81ae2929ee56de7
parentb2a53cb68658ec297d8b66f4c333a287bf70bc37 (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.c29
-rw-r--r--src/afb-config.h1
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);