]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
common: FreeBSD wants the correct struct selection for ipv6
authorWillem Jan Withagen <wjw@digiware.nl>
Fri, 30 Mar 2018 14:53:48 +0000 (16:53 +0200)
committerWillem Jan Withagen <wjw@digiware.nl>
Fri, 30 Mar 2018 15:49:08 +0000 (17:49 +0200)
Lets see if this also works for Linux

Fixes: http://tracker.ceph.com/issues/21813
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
src/common/ipaddr.cc

index 6baf7898285ef5bf89230a244410914cb33bd36a..c880bfd402e827ee92ffbcffba50d13a3db73fc2 100644 (file)
@@ -89,10 +89,9 @@ const struct ifaddrs *find_ipv6_in_subnet(const struct ifaddrs *addrs,
     if (addrs->ifa_addr->sa_family != net->sin6_family)
       continue;
 
-    if (IN6_IS_ADDR_LINKLOCAL(addrs->ifa_addr))
-      continue;
-
     struct in6_addr *cur = &((struct sockaddr_in6*)addrs->ifa_addr)->sin6_addr;
+    if (IN6_IS_ADDR_LINKLOCAL(cur))
+      continue;
     netmask_ipv6(cur, prefix_len, &temp);
 
     if (IN6_ARE_ADDR_EQUAL(&temp, &want))