diff options
author | Stef Walter <stef@memberwebs.com> | 2006-04-04 19:42:19 +0000 |
---|---|---|
committer | Stef Walter <stef@memberwebs.com> | 2006-04-04 19:42:19 +0000 |
commit | 1fe43cb40fb54412528b7538718a457d2167c603 (patch) | |
tree | 7eef0a4db45b1dea94d6820273b859db0cab45dd /daemon | |
parent | 6972f27080656ad3d2601fcb921c9a2389ac08a5 (diff) |
Add support for simpler create options.
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/config.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/daemon/config.c b/daemon/config.c index 23bc510..9a5320b 100644 --- a/daemon/config.c +++ b/daemon/config.c @@ -69,7 +69,7 @@ config_ctx; #define CONFIG_POLL "poll" #define CONFIG_INTERVAL "interval" #define CONFIG_TIMEOUT "timeout" -#define CONFIG_FIELD "field." +#define CONFIG_SOURCE "source" #define CONFIG_SNMP "snmp" #define FIELD_VALID "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-0123456789." @@ -316,6 +316,8 @@ static void config_value(const char* header, const char* name, char* value, config_ctx* ctx) { + char* suffix; + if(strcmp(header, CONFIG_POLL) != 0) return; @@ -333,9 +335,10 @@ config_value(const char* header, const char* name, char* value, ctx->confname, value); ctx->interval = (uint32_t)i; + return; } - else if(strcmp(name, CONFIG_TIMEOUT) == 0) + if(strcmp(name, CONFIG_TIMEOUT) == 0) { char* t; int i; @@ -349,23 +352,30 @@ config_value(const char* header, const char* name, char* value, ctx->confname, value); ctx->timeout = (uint32_t)i; + return; } + /* Parse out suffix */ + suffix = strchr(name, '.'); + if(!suffix) /* Ignore unknown options */ + return; + + *suffix = 0; + suffix++; + /* If it starts with "field." */ - else if(strncmp(name, CONFIG_FIELD, KL(CONFIG_FIELD)) == 0) + if(strcmp(suffix, CONFIG_SOURCE) == 0) { - const char* field; const char* t; /* Check the name */ - field = name + KL(CONFIG_FIELD); - t = field + strspn(field, FIELD_VALID); + t = name + strspn(name, FIELD_VALID); if(*t) errx(2, "%s: the '%s' field name must only contain characters, digits, underscore and dash", - ctx->confname, field); + ctx->confname, name); /* Parse out the field */ - parse_item(field, value, ctx); + parse_item(name, value, ctx); } } |