diff options
| author | Rémi Verschelde | 2016-10-31 08:00:54 +0100 |
|---|---|---|
| committer | GitHub | 2016-10-31 08:00:54 +0100 |
| commit | 434d120226c31fea9c1ff905c37486d6ed58633a (patch) | |
| tree | f3d69229c6c14f8b5e84337b3ac8ad0f470e5548 /drivers/unix/ip_unix.cpp | |
| parent | de454318e72f5de13c5a1efff5811d41e360a8a2 (diff) | |
| parent | bdc7ca84cac727f3f94663f23e1229450230bd2e (diff) | |
| download | godot-434d120226c31fea9c1ff905c37486d6ed58633a.tar.gz godot-434d120226c31fea9c1ff905c37486d6ed58633a.tar.zst godot-434d120226c31fea9c1ff905c37486d6ed58633a.zip | |
Merge pull request #6981 from Faless/ipv6_fix
Use IPv6 dual stack socket by default. Allow restricting IP version for TCP/UDP.
Diffstat (limited to 'drivers/unix/ip_unix.cpp')
| -rw-r--r-- | drivers/unix/ip_unix.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/unix/ip_unix.cpp b/drivers/unix/ip_unix.cpp index d6d1be339..e3d32618e 100644 --- a/drivers/unix/ip_unix.cpp +++ b/drivers/unix/ip_unix.cpp @@ -33,6 +33,13 @@ #include <string.h> #ifdef WINDOWS_ENABLED + // Workaround mingw missing flags! + #ifndef AI_ADDRCONFIG + #define AI_ADDRCONFIG 0x00000400 + #endif + #ifndef AI_V4MAPPED + #define AI_V4MAPPED 0x00000800 + #endif #ifdef WINRT_ENABLED #include <ws2tcpip.h> #include <winsock2.h> @@ -90,8 +97,10 @@ IP_Address IP_Unix::_resolve_hostname(const String& p_hostname, IP_Address::Addr hints.ai_family = AF_INET; } else if (p_type == IP_Address::TYPE_IPV6) { hints.ai_family = AF_INET6; + hints.ai_flags = 0; } else { hints.ai_family = AF_UNSPEC; + hints.ai_flags = (AI_V4MAPPED | AI_ADDRCONFIG); }; int s = getaddrinfo(p_hostname.utf8().get_data(), NULL, &hints, &result); |
