diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-03-24 13:13:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-24 13:13:43 +0100 |
commit | 92cdd646bde745774875ded593c41bb8a09eacaa (patch) | |
tree | f8de70b3766ce12dfc69ad34fd6de791aa693797 /thirdparty | |
parent | fe566ee2a8363bcbe8c58e9d01a43c0fb90fd89b (diff) | |
parent | 8d5df826cb861eb1abc75fb7cea24ee4eaa2582d (diff) |
Merge pull request #47318 from Faless/js/4.x_miniupnpc_fix
[Net] Fix miniupnpc UWP build.
Diffstat (limited to 'thirdparty')
-rw-r--r-- | thirdparty/README.md | 3 | ||||
-rw-r--r-- | thirdparty/miniupnpc/miniupnpc/minissdpc.c | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/thirdparty/README.md b/thirdparty/README.md index b05f074bd6..6dca29e856 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -370,6 +370,9 @@ The only modified file is `miniupnpcstrings.h`, which was created for Godot (it is usually autogenerated by cmake). Bump the version number for miniupnpc in that file when upgrading. +Note: The following upstream patch has been applied, remove this notice on next update. +https://github.com/miniupnp/miniupnp/commit/3a08dd4b89af2e9effa22a136bac86f2f306fd79 + ## minizip diff --git a/thirdparty/miniupnpc/miniupnpc/minissdpc.c b/thirdparty/miniupnpc/miniupnpc/minissdpc.c index 0ef7e12cfb..5d3a0fd049 100644 --- a/thirdparty/miniupnpc/miniupnpc/minissdpc.c +++ b/thirdparty/miniupnpc/miniupnpc/minissdpc.c @@ -576,7 +576,17 @@ ssdpDiscoverDevices(const char * const deviceTypes[], * in order to give this ip to setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF) */ if(!ipv6) { DWORD ifbestidx; +#if _WIN32_WINNT >= 0x0600 // _WIN32_WINNT_VISTA + // While we don't need IPv6 support, the IPv4 only funciton is not available in UWP apps. + SOCKADDR_IN destAddr; + memset(&destAddr, 0, sizeof(destAddr)); + destAddr.sin_family = AF_INET; + destAddr.sin_addr.s_addr = inet_addr("223.255.255.255"); + destAddr.sin_port = 0; + if (GetBestInterfaceEx((struct sockaddr *)&destAddr, &ifbestidx) == NO_ERROR) { +#else if (GetBestInterface(inet_addr("223.255.255.255"), &ifbestidx) == NO_ERROR) { +#endif DWORD dwRetVal = NO_ERROR; PIP_ADAPTER_ADDRESSES pAddresses = NULL; ULONG outBufLen = 15360; |