Browse Source

fix iOS building

devx-1.4.0
Trihedraf 6 months ago committed by Anders Jenbo
parent
commit
7369b92801
  1. 9
      ext/libnatpmp/getgateway.c
  2. 12
      osdep/Binder.hpp

9
ext/libnatpmp/getgateway.c

@ -56,10 +56,15 @@ POSSIBILITY OF SUCH DAMAGE.
#include <sys/sysctl.h>
#endif
#ifdef __APPLE__
#if defined(__APPLE__)
#undef USE_PROC_NET_ROUTE
#undef USE_SOCKET_ROUTE
#define USE_SYSCTL_NET_ROUTE
#include <TargetConditionals.h>
#if TARGET_OS_IPHONE
#undef USE_SYSCTL_NET_ROUTE
#else
#define USE_SYSCTL_NET_ROUTE
#endif
#endif
#if (defined(sun) && defined(__SVR4))

12
osdep/Binder.hpp

@ -40,9 +40,15 @@
#endif
#endif
#if defined(__APPLE__)
#include <TargetConditionals.h>
#endif
#if (defined(__unix__) || defined(__APPLE__)) && !defined(__LINUX__)
#include <net/if.h>
#if !TARGET_OS_IPHONE
#include <netinet6/in6_var.h>
#endif
#include <sys/ioctl.h>
#endif
@ -311,7 +317,7 @@ class Binder {
if (! gotViaProc) {
struct ifaddrs* ifatbl = (struct ifaddrs*)0;
struct ifaddrs* ifa;
#if (defined(__unix__) || defined(__APPLE__)) && !defined(__LINUX__)
#if (defined(__unix__) && !defined(__LINUX__)) || (defined(__APPLE__) && !TARGET_OS_IPHONE)
// 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
@ -320,7 +326,7 @@ class Binder {
while (ifa) {
if ((ifa->ifa_name) && (ifa->ifa_addr)) {
InetAddress ip = *(ifa->ifa_addr);
#if (defined(__unix__) || defined(__APPLE__)) && !defined(__LINUX__)
#if (defined(__unix__) && !defined(__LINUX__)) || (defined(__APPLE__) && !TARGET_OS_IPHONE)
// 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;
@ -368,7 +374,7 @@ class Binder {
else {
interfacesEnumerated = false;
}
#if (defined(__unix__) || defined(__APPLE__)) && !defined(__LINUX__)
#if (defined(__unix__) && !defined(__LINUX__)) || (defined(__APPLE__) && !TARGET_OS_IPHONE)
close(infoSock);
#endif
}

Loading…
Cancel
Save