Update valid_until lifetime only for non static DHCPv6 leases otherwise
the lifetime of a static lease is not infinite anymore
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
if (first && c->managed_size == 0)
free_dhcpv6_assignment(c);
if (first && c->managed_size == 0)
free_dhcpv6_assignment(c);
+ else if (first & !(c->flags & OAF_STATIC))
c->valid_until = now + 150;
}
c->valid_until = now + 150;
}
{
struct dhcpv6_assignment *c = container_of(s, struct dhcpv6_assignment, managed_sock);
{
struct dhcpv6_assignment *c = container_of(s, struct dhcpv6_assignment, managed_sock);
- c->valid_until = odhcpd_time() + 15;
+ if (!(c->flags & OAF_STATIC))
+ c->valid_until = odhcpd_time() + 15;
+
c->managed_size = 0;
if (c->accept_reconf)
c->managed_size = 0;
if (c->accept_reconf)
iaidbuf, assign->iaid, assign->length);
ustream_write_pending(&assign->managed_sock.stream);
assign->managed_size = -1;
iaidbuf, assign->iaid, assign->length);
ustream_write_pending(&assign->managed_sock.stream);
assign->managed_size = -1;
- assign->valid_until = odhcpd_time() + 15;
+
+ if (!(assign->flags & OAF_STATIC))
+ assign->valid_until = odhcpd_time() + 15;
+
list_add(&assign->head, &iface->ia_assignments);
/* Wait initial period of up to 250ms for immediate assignment */
list_add(&assign->head, &iface->ia_assignments);
/* Wait initial period of up to 250ms for immediate assignment */