struct interface *ifp;
struct dhcp6_state *state;
int llevel;
+ struct ipv6_addr *ia;
ifp = arg;
state = D6_STATE(ifp);
state->new = NULL;
state->new_len = 0;
+ /* If we fail to renew or confirm, our requested addreses will
+ * be marked as stale.
+ To re-request them, just mark them as not stale. */
+ TAILQ_FOREACH(ia, &state->addrs, next) {
+ if (ia->flags & IPV6_AF_REQUEST)
+ ia->flags &= ~IPV6_AF_STALE;
+ }
+
if (dhcp6_makemessage(ifp) == -1)
logerr("%s: %s", __func__, ifp->name);
else
} else {
if (!(a->flags & IPV6_AF_DELEGATEDPFX))
a->flags |= IPV6_AF_NEW | IPV6_AF_DELEGATEDPFX;
- a->flags &= ~(IPV6_AF_STALE |
- IPV6_AF_EXTENDED |
- IPV6_AF_REQUEST);
+ a->flags &= ~(IPV6_AF_STALE | IPV6_AF_EXTENDED);
if (a->prefix_vltime != pdp.vltime)
a->flags |= IPV6_AF_NEW;
}