commit 192e9ad7f6a6995ecb843fbbefe5425d0b37f6ee Author: Stefan Strogin Date: Mon Jun 17 17:10:23 2024 +0000 Support miniupnp-2.2.8 (fixes #2071) Use UPNP_GetValidIGD for getting external IP. diff --git a/daemon/UPnP.cpp b/daemon/UPnP.cpp index 043d935e..7885578e 100644 --- a/daemon/UPnP.cpp +++ b/daemon/UPnP.cpp @@ -115,10 +115,16 @@ namespace transport return; } +#if (MINIUPNPC_API_VERSION >= 18) + err = UPNP_GetValidIGD (m_Devlist, &m_upnpUrls, &m_upnpData, m_NetworkAddr, sizeof (m_NetworkAddr), + m_externalIPAddress, sizeof (m_externalIPAddress)); +#else err = UPNP_GetValidIGD (m_Devlist, &m_upnpUrls, &m_upnpData, m_NetworkAddr, sizeof (m_NetworkAddr)); +#endif m_upnpUrlsInitialized=err!=0; if (err == UPNP_IGD_VALID_CONNECTED) { +#if (MINIUPNPC_API_VERSION < 18) err = UPNP_GetExternalIPAddress (m_upnpUrls.controlURL, m_upnpData.first.servicetype, m_externalIPAddress); if(err != UPNPCOMMAND_SUCCESS) { @@ -126,6 +132,7 @@ namespace transport return; } else +#endif { LogPrint (eLogError, "UPnP: Found Internet Gateway Device ", m_upnpUrls.controlURL); if (!m_externalIPAddress[0])