diff options
| author | Roy Marples <roy@marples.name> | 2015-01-08 13:33:07 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2015-01-08 13:33:07 +0000 |
| commit | de67b951103e46d0b0ce380e632e02bfb2e798a5 (patch) | |
| tree | 18d776c4958dc680ee1480af994541a5db481a7a /ipv6nd.c | |
| parent | 62f12387ac7944e54d05a96cbb300165f064fb86 (diff) | |
| download | dhcpcd-de67b951103e46d0b0ce380e632e02bfb2e798a5.tar.xz | |
Only check DaD for addresses we have actually added ourselves.
Diffstat (limited to 'ipv6nd.c')
| -rw-r--r-- | ipv6nd.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -494,8 +494,8 @@ ipv6nd_scriptrun(struct ra *rap) hasaddress = 0; /* If all addresses have completed DAD run the script */ TAILQ_FOREACH(ap, &rap->addrs, next) { - if ((ap->flags & (IPV6_AF_ONLINK | IPV6_AF_AUTOCONF)) == - (IPV6_AF_ONLINK | IPV6_AF_AUTOCONF)) + if ((ap->flags & (IPV6_AF_AUTOCONF | IPV6_AF_ADDED)) == + (IPV6_AF_AUTOCONF | IPV6_AF_ADDED)) { hasaddress = 1; if (!(ap->flags & IPV6_AF_DADCOMPLETED) && @@ -563,8 +563,9 @@ ipv6nd_dadcompleted(const struct interface *ifp) continue; TAILQ_FOREACH(ap, &rap->addrs, next) { if (ap->flags & IPV6_AF_AUTOCONF && + ap->flags & IPV6_AF_ADDED && !(ap->flags & IPV6_AF_DADCOMPLETED)) - return 0; + return 0; } } return 1; @@ -647,6 +648,7 @@ try_script: found = 0; TAILQ_FOREACH(rapap, &rap->addrs, next) { if (rapap->flags & IPV6_AF_AUTOCONF && + rapap->flags & IPV6_AF_ADDED && (rapap->flags & IPV6_AF_DADCOMPLETED) == 0) { wascompleted = 0; |
