Hi, In the common IPv4 and IPv6 file ip_carp.c an #ifdef INET6 is missing. Especially the IN6_IS_ADDR_LINKLOCAL() macro should not be necessary in IPv4 only code.
ok? bluhm Index: netinet/ip_carp.c =================================================================== RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_carp.c,v retrieving revision 1.209 diff -u -p -u -p -r1.209 ip_carp.c --- netinet/ip_carp.c 20 Jun 2013 12:03:40 -0000 1.209 +++ netinet/ip_carp.c 11 Aug 2013 18:59:49 -0000 @@ -1969,9 +1969,11 @@ carp_addr_updated(void *v) TAILQ_FOREACH(ifa, &sc->sc_if.if_addrlist, ifa_list) { if (ifa->ifa_addr->sa_family == AF_INET) new_naddrs++; +#ifdef INET6 else if (ifa->ifa_addr->sa_family == AF_INET6 && !IN6_IS_ADDR_LINKLOCAL(&ifatoia6(ifa)->ia_addr.sin6_addr)) new_naddrs6++; +#endif /* INET6 */ } /* We received address changes from if_addrhooks callback */