From 1859365f9d3f4dcb29fd36fa5e4b42859a683199 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Thu, 27 May 2021 16:43:12 -0400 Subject: [PATCH] same IPv6 temp address detection code for macOS works on FreeBSD. update ifdefs & go --- osdep/Binder.hpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/osdep/Binder.hpp b/osdep/Binder.hpp index 0316edb9d..bd515eaab 100644 --- a/osdep/Binder.hpp +++ b/osdep/Binder.hpp @@ -40,7 +40,7 @@ #endif #endif -#if defined(__APPLE__) && defined(TARGET_OS_MAC) +#if defined(__unix__) && !defined(__LINUX__) #include #include #include @@ -311,8 +311,7 @@ class Binder { if (! gotViaProc) { struct ifaddrs* ifatbl = (struct ifaddrs*)0; struct ifaddrs* ifa; - -#if defined(__APPLE__) +#if defined(__unix__) && !defined(__LINUX__) // set up an IPv6 socket so we can check the state of interfaces via SIOCGIFAFLAG_IN6 int infoSock = socket(AF_INET6, SOCK_DGRAM, 0); #endif @@ -321,8 +320,8 @@ class Binder { while (ifa) { if ((ifa->ifa_name) && (ifa->ifa_addr)) { InetAddress ip = *(ifa->ifa_addr); -#if defined(__APPLE__) && defined(TARGET_OS_MAC) - // Check if the address is an IPv6 Temporary Address, macOS version +#if defined(__unix__) && !defined(__LINUX__) + // Check if the address is an IPv6 Temporary Address, macOS/BSD version if (ifa->ifa_addr->sa_family == AF_INET6) { struct sockaddr_in6* sa6 = (struct sockaddr_in6*)ifa->ifa_addr; struct in6_ifreq ifr6; @@ -369,7 +368,7 @@ class Binder { else { interfacesEnumerated = false; } -#if defined(__APPLE__) +#if defined(__unix__) && !defined(__LINUX__) close(infoSock); #endif }