diff options
-rw-r--r-- | src/config.c | 13 | ||||
-rw-r--r-- | src/dhcpv4.c | 9 | ||||
-rw-r--r-- | src/dhcpv6-ia.c | 10 |
3 files changed, 10 insertions, 22 deletions
diff --git a/src/config.c b/src/config.c index b621c75..df0cbc4 100644 --- a/src/config.c +++ b/src/config.c @@ -192,6 +192,7 @@ static void set_interface_defaults(struct interface *iface) { iface->managed = 1; iface->learn_routes = 1; + iface->dhcpv4_leasetime = 43200; iface->ra_maxinterval = 600; iface->ra_mininterval = iface->ra_maxinterval/3; iface->ra_lifetime = -1; @@ -288,10 +289,10 @@ static double parse_leasetime(struct blob_attr *c) { goto err; } - if (time >= 60) - return time; + if (time < 60) + time = 60; - return 0; + return time; err: return -1; @@ -351,8 +352,7 @@ static int set_lease(struct uci_section *s) if (time < 0) goto err; - if (time >= 60) - lease->dhcpv4_leasetime = time; + lease->dhcpv4_leasetime = time; } list_add(&lease->head, &leases); @@ -425,8 +425,7 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr if (time < 0) goto err; - if (time >= 60) - iface->dhcpv4_leasetime = time; + iface->dhcpv4_leasetime = time; } if ((c = tb[IFACE_ATTR_START])) { diff --git a/src/dhcpv4.c b/src/dhcpv4.c index 5ef99b1..81e537d 100644 --- a/src/dhcpv4.c +++ b/src/dhcpv4.c @@ -153,8 +153,7 @@ int setup_dhcpv4_interface(struct interface *iface, bool enable) return -1; } - if (lease->dhcpv4_leasetime >= 60) - a->leasetime = lease->dhcpv4_leasetime; + a->leasetime = lease->dhcpv4_leasetime; a->addr = ntohl(lease->ipaddr.s_addr); memcpy(a->hwaddr, lease->mac.ether_addr_octet, sizeof(a->hwaddr)); @@ -194,10 +193,6 @@ int setup_dhcpv4_interface(struct interface *iface, bool enable) free_dhcpv4_assignment(a); } - - if (iface->dhcpv4_leasetime < 60) - iface->dhcpv4_leasetime = 43200; - iface->dhcpv4_event.uloop.fd = sock; iface->dhcpv4_event.handle_dgram = handle_dhcpv4; odhcpd_register(&iface->dhcpv4_event); @@ -627,7 +622,7 @@ static struct dhcpv4_assignment* dhcpv4_lease(struct interface *iface, assigned = dhcpv4_assign(iface, a, raddr); } - if (a->leasetime >= 60) + if (a->leasetime) my_leasetime = a->leasetime; else my_leasetime = iface->dhcpv4_leasetime; diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c index 84f368e..888634f 100644 --- a/src/dhcpv6-ia.c +++ b/src/dhcpv6-ia.c @@ -88,8 +88,7 @@ int setup_dhcpv6_ia_interface(struct interface *iface, bool enable) return -1; } - if (lease->dhcpv4_leasetime > 0) - a->leasetime = lease->dhcpv4_leasetime; + a->leasetime = lease->dhcpv4_leasetime; a->clid_len = duid_len; a->length = 128; @@ -719,16 +718,11 @@ static size_t append_reply(uint8_t *buf, size_t buflen, uint16_t status, } else { if (a) { uint32_t leasetime; - if (a->leasetime > 0) + if (a->leasetime) leasetime = a->leasetime; else leasetime = iface->dhcpv4_leasetime; - if (leasetime == 0) - leasetime = 3600; - else if (leasetime < 60) - leasetime = 60; - uint32_t pref = leasetime; uint32_t valid = leasetime; |