summaryrefslogtreecommitdiff
path: root/drivers/unix/ip_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/unix/ip_unix.cpp')
-rw-r--r--drivers/unix/ip_unix.cpp114
1 files changed, 55 insertions, 59 deletions
diff --git a/drivers/unix/ip_unix.cpp b/drivers/unix/ip_unix.cpp
index fc0b3faccc..0a26b5bbba 100644
--- a/drivers/unix/ip_unix.cpp
+++ b/drivers/unix/ip_unix.cpp
@@ -33,60 +33,61 @@
#include <string.h>
#ifdef WINDOWS_ENABLED
- #include <ws2tcpip.h>
- #include <winsock2.h>
- #include <windows.h>
- #include <stdio.h>
- #ifndef UWP_ENABLED
- #if defined(__MINGW32__ ) && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 4)
- // MinGW-w64 on Ubuntu 12.04 (our Travis build env) has bugs in this code where
- // some includes are missing in dependencies of iphlpapi.h for WINVER >= 0x0600 (Vista).
- // We don't use this Vista code for now, so working it around by disabling it.
- // MinGW-w64 >= 4.0 seems to be better judging by its headers.
- #undef _WIN32_WINNT
- #define _WIN32_WINNT 0x0501 // Windows XP, disable Vista API
- #include <iphlpapi.h>
- #undef _WIN32_WINNT
- #define _WIN32_WINNT 0x0600 // Reenable Vista API
- #else
- #include <iphlpapi.h>
- #endif // MINGW hack
- #endif
+#include <stdio.h>
+#include <winsock2.h>
+// Needs to be included after winsocks2.h
+#include <windows.h>
+#include <ws2tcpip.h>
+#ifndef UWP_ENABLED
+#if defined(__MINGW32__) && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 4)
+// MinGW-w64 on Ubuntu 12.04 (our Travis build env) has bugs in this code where
+// some includes are missing in dependencies of iphlpapi.h for WINVER >= 0x0600 (Vista).
+// We don't use this Vista code for now, so working it around by disabling it.
+// MinGW-w64 >= 4.0 seems to be better judging by its headers.
+#undef _WIN32_WINNT
+#define _WIN32_WINNT 0x0501 // Windows XP, disable Vista API
+#include <iphlpapi.h>
+#undef _WIN32_WINNT
+#define _WIN32_WINNT 0x0600 // Reenable Vista API
#else
- #include <netdb.h>
- #ifdef ANDROID_ENABLED
- #include "platform/android/ifaddrs_android.h"
- #else
- #ifdef __FreeBSD__
- #include <sys/types.h>
- #endif
- #include <ifaddrs.h>
- #endif
- #include <arpa/inet.h>
- #include <sys/socket.h>
- #ifdef __FreeBSD__
- #include <netinet/in.h>
- #endif
+#include <iphlpapi.h>
+#endif // MINGW hack
+#endif
+#else
+#include <netdb.h>
+#ifdef ANDROID_ENABLED
+#include "platform/android/ifaddrs_android.h"
+#else
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#endif
+#include <ifaddrs.h>
+#endif
+#include <arpa/inet.h>
+#include <sys/socket.h>
+#ifdef __FreeBSD__
+#include <netinet/in.h>
+#endif
#endif
-static IP_Address _sockaddr2ip(struct sockaddr* p_addr) {
+static IP_Address _sockaddr2ip(struct sockaddr *p_addr) {
IP_Address ip;
if (p_addr->sa_family == AF_INET) {
- struct sockaddr_in* addr = (struct sockaddr_in*)p_addr;
+ struct sockaddr_in *addr = (struct sockaddr_in *)p_addr;
ip.set_ipv4((uint8_t *)&(addr->sin_addr));
} else {
- struct sockaddr_in6* addr6 = (struct sockaddr_in6*)p_addr;
+ struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)p_addr;
ip.set_ipv6(addr6->sin6_addr.s6_addr);
};
return ip;
};
-IP_Address IP_Unix::_resolve_hostname(const String& p_hostname, Type p_type) {
+IP_Address IP_Unix::_resolve_hostname(const String &p_hostname, Type p_type) {
struct addrinfo hints;
- struct addrinfo* result;
+ struct addrinfo *result;
memset(&hints, 0, sizeof(struct addrinfo));
if (p_type == TYPE_IPV4) {
@@ -115,7 +116,6 @@ IP_Address IP_Unix::_resolve_hostname(const String& p_hostname, Type p_type) {
freeaddrinfo(result);
return ip;
-
}
#if defined(WINDOWS_ENABLED)
@@ -136,23 +136,22 @@ void IP_Unix::get_local_addresses(List<IP_Address> *r_addresses) const {
r_addresses->push_back(IP_Address(String(hostnames->GetAt(i)->CanonicalName->Data())));
}
}
-
};
#else
void IP_Unix::get_local_addresses(List<IP_Address> *r_addresses) const {
ULONG buf_size = 1024;
- IP_ADAPTER_ADDRESSES* addrs;
+ IP_ADAPTER_ADDRESSES *addrs;
while (true) {
- addrs = (IP_ADAPTER_ADDRESSES*)memalloc(buf_size);
+ addrs = (IP_ADAPTER_ADDRESSES *)memalloc(buf_size);
int err = GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_SKIP_ANYCAST |
- GAA_FLAG_SKIP_MULTICAST |
- GAA_FLAG_SKIP_DNS_SERVER |
- GAA_FLAG_SKIP_FRIENDLY_NAME,
- NULL, addrs, &buf_size);
+ GAA_FLAG_SKIP_MULTICAST |
+ GAA_FLAG_SKIP_DNS_SERVER |
+ GAA_FLAG_SKIP_FRIENDLY_NAME,
+ NULL, addrs, &buf_size);
if (err == NO_ERROR) {
break;
};
@@ -166,29 +165,27 @@ void IP_Unix::get_local_addresses(List<IP_Address> *r_addresses) const {
return;
};
-
- IP_ADAPTER_ADDRESSES* adapter = addrs;
+ IP_ADAPTER_ADDRESSES *adapter = addrs;
while (adapter != NULL) {
- IP_ADAPTER_UNICAST_ADDRESS* address = adapter->FirstUnicastAddress;
+ IP_ADAPTER_UNICAST_ADDRESS *address = adapter->FirstUnicastAddress;
while (address != NULL) {
IP_Address ip;
if (address->Address.lpSockaddr->sa_family == AF_INET) {
- SOCKADDR_IN* ipv4 = reinterpret_cast<SOCKADDR_IN*>(address->Address.lpSockaddr);
+ SOCKADDR_IN *ipv4 = reinterpret_cast<SOCKADDR_IN *>(address->Address.lpSockaddr);
ip.set_ipv4((uint8_t *)&(ipv4->sin_addr));
} else { // ipv6
- SOCKADDR_IN6* ipv6 = reinterpret_cast<SOCKADDR_IN6*>(address->Address.lpSockaddr);
+ SOCKADDR_IN6 *ipv6 = reinterpret_cast<SOCKADDR_IN6 *>(address->Address.lpSockaddr);
ip.set_ipv6(ipv6->sin6_addr.s6_addr);
};
-
r_addresses->push_back(ip);
address = address->Next;
@@ -205,8 +202,8 @@ void IP_Unix::get_local_addresses(List<IP_Address> *r_addresses) const {
void IP_Unix::get_local_addresses(List<IP_Address> *r_addresses) const {
- struct ifaddrs * ifAddrStruct=NULL;
- struct ifaddrs * ifa=NULL;
+ struct ifaddrs *ifAddrStruct = NULL;
+ struct ifaddrs *ifa = NULL;
getifaddrs(&ifAddrStruct);
@@ -218,19 +215,18 @@ void IP_Unix::get_local_addresses(List<IP_Address> *r_addresses) const {
r_addresses->push_back(ip);
}
- if (ifAddrStruct!=NULL) freeifaddrs(ifAddrStruct);
-
+ if (ifAddrStruct != NULL) freeifaddrs(ifAddrStruct);
}
#endif
void IP_Unix::make_default() {
- _create=_create_unix;
+ _create = _create_unix;
}
-IP* IP_Unix::_create_unix() {
+IP *IP_Unix::_create_unix() {
- return memnew( IP_Unix );
+ return memnew(IP_Unix);
}
IP_Unix::IP_Unix() {