diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-09-07 16:33:40 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-09-07 16:33:40 +0200 |
commit | 08c578c54c352edf85f750992b2156bae5685fb8 (patch) | |
tree | 6d01afec88e82c8fe9bb8d6a2a38f5e889043d77 /drivers/unix/ip_unix.cpp | |
parent | 0b9ffdfc02d55fc66c5488b757060601bcd86f95 (diff) | |
parent | 8de6405288a79c3109524a319bdd749ad1f902fe (diff) | |
download | redot-engine-08c578c54c352edf85f750992b2156bae5685fb8.tar.gz |
Merge pull request #81416 from akien-mga/uwp-ce-nest-qu-un-au-revoir
UWP: Remove platform port, needs to be redone from scratch for 4.x
Diffstat (limited to 'drivers/unix/ip_unix.cpp')
-rw-r--r-- | drivers/unix/ip_unix.cpp | 65 |
1 files changed, 18 insertions, 47 deletions
diff --git a/drivers/unix/ip_unix.cpp b/drivers/unix/ip_unix.cpp index ec60d9e91a..5987c1675d 100644 --- a/drivers/unix/ip_unix.cpp +++ b/drivers/unix/ip_unix.cpp @@ -32,19 +32,21 @@ #if defined(UNIX_ENABLED) || defined(WINDOWS_ENABLED) -#include <string.h> - #ifdef WINDOWS_ENABLED -#include <stdio.h> + #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h> #include <ws2tcpip.h> -#ifndef UWP_ENABLED + #include <iphlpapi.h> -#endif + +#include <stdio.h> + #else // UNIX + #include <netdb.h> + #ifdef ANDROID_ENABLED // We could drop this file once we up our API level to 24, // where the NDK's ifaddrs.h supports to needed getifaddrs. @@ -55,13 +57,19 @@ #endif #include <ifaddrs.h> #endif + #include <arpa/inet.h> #include <sys/socket.h> + #ifdef __FreeBSD__ #include <netinet/in.h> #endif -#include <net/if.h> // Order is important on OpenBSD, leave as last -#endif + +#include <net/if.h> // Order is important on OpenBSD, leave as last. + +#endif // UNIX + +#include <string.h> static IPAddress _sockaddr2ip(struct sockaddr *p_addr) { IPAddress ip; @@ -126,42 +134,6 @@ void IPUnix::_resolve_hostname(List<IPAddress> &r_addresses, const String &p_hos #if defined(WINDOWS_ENABLED) -#if defined(UWP_ENABLED) - -void IPUnix::get_local_interfaces(HashMap<String, Interface_Info> *r_interfaces) const { - using namespace Windows::Networking; - using namespace Windows::Networking::Connectivity; - - // Returns addresses, not interfaces. - auto hostnames = NetworkInformation::GetHostNames(); - - for (int i = 0; i < hostnames->Size; i++) { - auto hostname = hostnames->GetAt(i); - - if (hostname->Type != HostNameType::Ipv4 && hostname->Type != HostNameType::Ipv6) { - continue; - } - - String name = hostname->RawName->Data(); - HashMap<String, Interface_Info>::Element *E = r_interfaces->find(name); - if (!E) { - Interface_Info info; - info.name = name; - info.name_friendly = hostname->DisplayName->Data(); - info.index = String::num_uint64(0); - E = r_interfaces->insert(name, info); - ERR_CONTINUE(!E); - } - - Interface_Info &info = E->get(); - - IPAddress ip = IPAddress(hostname->CanonicalName->Data()); - info.ip_addresses.push_front(ip); - } -} - -#else - void IPUnix::get_local_interfaces(HashMap<String, Interface_Info> *r_interfaces) const { ULONG buf_size = 1024; IP_ADAPTER_ADDRESSES *addrs; @@ -208,8 +180,6 @@ void IPUnix::get_local_interfaces(HashMap<String, Interface_Info> *r_interfaces) memfree(addrs); } -#endif - #else // UNIX void IPUnix::get_local_interfaces(HashMap<String, Interface_Info> *r_interfaces) const { @@ -248,7 +218,8 @@ void IPUnix::get_local_interfaces(HashMap<String, Interface_Info> *r_interfaces) freeifaddrs(ifAddrStruct); } } -#endif + +#endif // UNIX void IPUnix::make_default() { _create = _create_unix; @@ -261,4 +232,4 @@ IP *IPUnix::_create_unix() { IPUnix::IPUnix() { } -#endif +#endif // UNIX_ENABLED || WINDOWS_ENABLED |