Mercurial > hg > dhcpcd
changeset 2348:863c60e608f8 draft
Correctly delete IPv6 addresses from eloop timeouts
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Sat, 01 Mar 2014 17:59:33 +0000 |
| parents | 347128ba938e |
| children | 71317f9845eb |
| files | ipv6.c ipv6nd.c |
| diffstat | 2 files changed, 3 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/ipv6.c Sat Mar 01 10:57:45 2014 +0000 +++ b/ipv6.c Sat Mar 01 17:59:33 2014 +0000 @@ -468,9 +468,7 @@ if (ifd && ap->delegating_iface != ifd) continue; TAILQ_REMOVE(addrs, ap, next); - if (ap->dadcallback) - eloop_q_timeout_delete(ap->iface->ctx->eloop, - 0, NULL, ap->dadcallback); + eloop_q_timeout_delete(ap->iface->ctx->eloop, 0, NULL, ap); /* Only drop the address if no other RAs have assigned it. * This is safe because the RA is removed from the list * before we are called. */
--- a/ipv6nd.c Sat Mar 01 10:57:45 2014 +0000 +++ b/ipv6nd.c Sat Mar 01 17:59:33 2014 +0000 @@ -1510,9 +1510,8 @@ errno != EADDRNOTAVAIL && errno != ENXIO) syslog(LOG_ERR, "del_address6 %m"); } - if (ap->dadcallback) - eloop_q_timeout_delete(ap->iface->ctx->eloop, - 0, NULL, ap->dadcallback); + eloop_q_timeout_delete(ap->iface->ctx->eloop, + 0, NULL, ap); free(ap); } else if (!IN6_IS_ADDR_UNSPECIFIED(&ap->addr)) { ipv6nd_probeaddr(ap);
