summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2016-05-25 19:54:07 +0000
committerRoy Marples <roy@marples.name>2016-05-25 19:54:07 +0000
commit3c0de5f3b6e5a0dc8f1bdd22b007b70170b91dc4 (patch)
tree2faa2810d7d5c9bf641d906311e2d04204312808
parent7f347e48b61c5dec851c04c37079902822ba8bcd (diff)
downloaddhcpcd-3c0de5f3b6e5a0dc8f1bdd22b007b70170b91dc4.tar.xz
Report the first non requested address.
-rw-r--r--dhcp6.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/dhcp6.c b/dhcp6.c
index 90f70ede..70c00dab 100644
--- a/dhcp6.c
+++ b/dhcp6.c
@@ -2948,9 +2948,14 @@ dhcp6_handledata(void *arg)
case DHCP6_ADVERTISE:
if (state->state == DH6S_REQUEST) /* rapid commit */
break;
- ap = TAILQ_FIRST(&state->addrs);
- logger(ifp->ctx, LOG_INFO, "%s: ADV %s from %s",
- ifp->name, ap->saddr, ctx->sfrom);
+ TAILQ_FOREACH(ap, &state->addrs, next) {
+ if (!(ap->flags & IPV6_AF_REQUEST))
+ break;
+ }
+ if (ap == NULL)
+ ap = TAILQ_FIRST(&state->addrs);
+ logger(ifp->ctx, LOG_INFO, "%s: ADV %p %s from %s",
+ ifp->name, ap, ap->saddr, ctx->sfrom);
if (ifp->ctx->options & DHCPCD_TEST)
break;
dhcp6_startrequest(ifp);