Merge pull request #47318 from Faless/js/4.x_miniupnpc_fix

[Net] Fix miniupnpc UWP build.
This commit is contained in:
Rémi Verschelde 2021-03-24 13:13:43 +01:00 committed by GitHub
commit 92cdd646bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -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 (it is usually autogenerated by cmake). Bump the version number for miniupnpc in that
file when upgrading. 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 ## minizip

View File

@ -576,7 +576,17 @@ ssdpDiscoverDevices(const char * const deviceTypes[],
* in order to give this ip to setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF) */ * in order to give this ip to setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF) */
if(!ipv6) { if(!ipv6) {
DWORD ifbestidx; 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) { if (GetBestInterface(inet_addr("223.255.255.255"), &ifbestidx) == NO_ERROR) {
#endif
DWORD dwRetVal = NO_ERROR; DWORD dwRetVal = NO_ERROR;
PIP_ADAPTER_ADDRESSES pAddresses = NULL; PIP_ADAPTER_ADDRESSES pAddresses = NULL;
ULONG outBufLen = 15360; ULONG outBufLen = 15360;