diff options
author | Hans Dedecker <dedeckeh@gmail.com> | 2016-11-17 16:11:56 +0100 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2016-11-21 11:35:30 +0100 |
commit | 6c3bc0141dacc88992583d6f2cdc8a360df7422d (patch) | |
tree | 4cf9e6f28c5e398106aa3f6d88155b71cef5e0cf /src/config.c | |
parent | 801cfeea100ca7b211c9841f0fcb757b17f47860 (diff) |
config: Support infinite as DHCP pool leasetime value
Add support for infinite leasetime value; this can be done by
specifying "infinite" as leasetime value which is similar to
dnsmasq infinite leasetime support.
Specifying "infinite" as leasetime is valid for both the host
and dhcp uci sections.
A DHCPv4/DHCPv6 assignment is now considered infinite if valid_unil
holds the value 0.
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'src/config.c')
-rw-r--r-- | src/config.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/config.c b/src/config.c index ef51112..44b049d 100644 --- a/src/config.c +++ b/src/config.c @@ -218,9 +218,10 @@ static void set_config(struct uci_section *s) } static double parse_leasetime(struct blob_attr *c) { - char *val = blobmsg_get_string(c), *endptr; - double time = strtod(val, &endptr); - if (time && endptr[0]) { + char *val = blobmsg_get_string(c), *endptr = NULL; + double time = strcmp(val, "infinite") ? strtod(val, &endptr) : UINT32_MAX; + + if (time && endptr && endptr[0]) { if (endptr[0] == 's') time *= 1; else if (endptr[0] == 'm') |