diff options
| author | Roy Marples <roy@marples.name> | 2016-09-16 16:03:00 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2016-09-16 16:03:00 +0000 |
| commit | ae8cd3160ca43ea50f5fe3568ad6f7f045f86ab5 (patch) | |
| tree | 4b357b37eb0383ec9b2829120d9d72f94698d5fd /ipv6.c | |
| parent | b0601fe4165e342848c344faf2e08720db5fa271 (diff) | |
| download | dhcpcd-ae8cd3160ca43ea50f5fe3568ad6f7f045f86ab5.tar.xz | |
Fix compile on OpenBSD.
Diffstat (limited to 'ipv6.c')
| -rw-r--r-- | ipv6.c | 20 |
1 files changed, 16 insertions, 4 deletions
@@ -567,20 +567,25 @@ ipv6_checkaddrflags(void *arg) { struct ipv6_addr *ia; int flags; + const char *alias; ia = arg; - if ((flags = if_addrflags6(ia)) == -1) { +#ifdef ALIAS_ADDR + alias = ia->alias; +#else + alias = NULL; +#endif + if ((flags = if_addrflags6(ia->iface, &ia->addr, alias)) == -1) { logger(ia->iface->ctx, LOG_ERR, "%s: if_addrflags6: %m", ia->iface->name); return; } - ia->addr_flags = flags; if (!(ia->addr_flags & IN6_IFF_TENTATIVE)) { /* Simulate the kernel announcing the new address. */ ipv6_handleifa(ia->iface->ctx, RTM_NEWADDR, ia->iface->ctx->ifaces, ia->iface->name, - &ia->addr, ia->prefix_len); + &ia->addr, ia->prefix_len, flags); } else { /* Still tentative? Check again in a bit. */ struct timespec tv; @@ -1608,10 +1613,17 @@ ipv6_start(struct interface *ifp) /* We need to update the address flags. */ if ((state = IPV6_STATE(ifp)) != NULL) { struct ipv6_addr *ia; + const char *alias; int flags; TAILQ_FOREACH(ia, &state->addrs, next) { - if ((flags = if_addrflags6(ia)) != -1) +#ifdef ALIAS_ADDR + alias = ia->alias; +#else + alias = NULL; +#endif + flags = if_addrflags6(ia->iface, &ia->addr, alias); + if (flags != -1) ia->addr_flags = flags; } } |
