X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fodhcpd.git;a=blobdiff_plain;f=src%2Fdhcpv6-ia.c;h=181973d20328b017523e635c6bff957ef13bb582;hp=3a12114544e780e4f783849731b106deae663097;hb=72082d2f6c2ee568470575c09ba4984f1a5c44f0;hpb=ec3320078c11474b8ea48225f330c15d9471e312 diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c index 3a12114..181973d 100644 --- a/src/dhcpv6-ia.c +++ b/src/dhcpv6-ia.c @@ -718,8 +718,14 @@ static size_t append_reply(uint8_t *buf, size_t buflen, uint16_t status, datalen += sizeof(stat); } else { if (a) { - uint32_t pref = 3600; - uint32_t valid = 3600; + uint32_t leasetime = iface->dhcpv4_leasetime; + if (leasetime == 0) + leasetime = 3600; + else if (leasetime < 60) + leasetime = 60; + + uint32_t pref = leasetime; + uint32_t valid = leasetime; struct odhcpd_ipaddr *addrs = (a->managed) ? a->managed : iface->ia_addr; size_t addrlen = (a->managed) ? (size_t)a->managed_size : iface->ia_addr_len;