diff -Naur 0ad-0.0.26-alpha.old/source/network/NetServer.cpp 0ad-0.0.26-alpha/source/network/NetServer.cpp --- 0ad-0.0.26-alpha.old/source/network/NetServer.cpp 2024-10-08 23:50:11.583206377 +0200 +++ 0ad-0.0.26-alpha/source/network/NetServer.cpp 2024-10-08 23:53:47.161712553 +0200 @@ -302,7 +302,11 @@ else if ((devlist = upnpDiscover(10000, 0, 0, 0, 0, 0)) != NULL) #endif { +#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18 + ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress), nullptr, 0); +#else ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress)); +#endif allocatedUrls = ret != 0; // urls is allocated on non-zero return values } else @@ -320,10 +324,21 @@ case 1: LOGMESSAGE("Net server: found valid IGD = %s", urls.controlURL); break; +#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18 + case 2: + LOGMESSAGE("Net server: found IGD with reserved IP = %s, will try to continue anyway", urls.controlURL); + break; + case 3: +#else case 2: +#endif LOGMESSAGE("Net server: found a valid, not connected IGD = %s, will try to continue anyway", urls.controlURL); break; +#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18 + case 4: +#else case 3: +#endif LOGMESSAGE("Net server: found a UPnP device unrecognized as IGD = %s, will try to continue anyway", urls.controlURL); break; default: