Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -1465,12 +1465,10 @@ #ifdef AF_INET6 egrep_cpp_yes #endif ], [ AC_DEFINE(OF_HAVE_IPV6, 1, [Whether we have IPv6]) - - AC_CHECK_FUNCS(inet6_getscopeid) ]) ], [ dnl Work around a bug in autoconf 2.61 that creates a broken dnl configure if this branch is empty. : Index: src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m ================================================================== --- src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m +++ src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m @@ -225,13 +225,16 @@ # if defined(OF_HAVE_IPV6) && defined(HAVE_IF_NAMETOINDEX) if (address.sockaddr.in6.sin6_family == AF_INET6 && address.sockaddr.in6.sin6_addr.s6_addr[0] == 0xFE && (address.sockaddr.in6.sin6_addr.s6_addr[1] & 0xC0) == 0x80) { -# if defined(HAVE_INET6_GETSCOPEID) - inet6_getscopeid(&address.sockaddr.in6, - INET6_IS_ADDR_LINKLOCAL); +# if defined(__KAME__) +# define addr6 address.sockaddr.in6.sin6_addr.s6_addr + address.sockaddr.in6.sin6_scope_id = + (addr6[2] << 8) | addr6[3]; + addr6[2] = addr6[3] = 0; +# undef addr6 # elif defined(HAVE_IF_NAMETOINDEX) address.sockaddr.in6.sin6_scope_id = if_nametoindex( [name cStringWithEncoding: encoding]); # endif