diff options
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/config.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/daemon/config.c b/daemon/config.c index d102126..78ad04b 100644 --- a/daemon/config.c +++ b/daemon/config.c @@ -67,6 +67,7 @@ config_ctx; #define CONFIG_POLL "poll" #define CONFIG_INTERVAL "interval" +#define CONFIG_TIMEOUT "timeout" #define CONFIG_FIELD "field." #define CONFIG_SNMP "snmp" @@ -323,17 +324,32 @@ config_value(const char* header, const char* name, char* value, int i; if(ctx->interval > 0) - errx(2, "%s: " CONFIG_INTERVAL " specified twice: %s", - ctx->confname, value); + errx(2, "%s: " CONFIG_INTERVAL " specified twice: %s", ctx->confname, value); i = strtol(value, &t, 10); - if(i < 1) - err(2, "%s: " CONFIG_INTERVAL " must be a positive number: %s", + if(i < 1 || *t) + errx(2, "%s: " CONFIG_INTERVAL " must be a number (seconds) greater than zero: %s", ctx->confname, value); ctx->interval = (uint32_t)i; } + if(strcmp(name, CONFIG_TIMEOUT) == 0) + { + char* t; + int i; + + if(ctx->timeout > 0) + errx(2, "%s: " CONFIG_TIMEOUT " specified twice: %s", ctx->confname, value); + + i = strtol(value, &t, 10); + if(i < 1 || *t) + errx(2, "%s: " CONFIG_TIMEOUT " must be a a number (seconds) greater than zero: %s", + ctx->confname, value); + + ctx->timeout = (uint32_t)i; + } + /* If it starts with "field." */ if(strncmp(name, CONFIG_FIELD, KL(CONFIG_FIELD)) == 0) { |