mirror of
https://github.com/moonlight-stream/Internet-Hosting-Tool.git
synced 2026-06-18 14:41:04 +00:00
Fix handling of IGD returning empty IP address and success status
This commit is contained in:
+6
-1
@@ -557,11 +557,14 @@ bool CheckWANAccess(PSOCKADDR_IN wanAddr, bool* foundPortForwardingRules)
|
|||||||
// Connected or disconnected IGD
|
// Connected or disconnected IGD
|
||||||
if (ret == 1 || ret == 2) {
|
if (ret == 1 || ret == 2) {
|
||||||
ret = UPNP_GetExternalIPAddress(urls.controlURL, data.first.servicetype, wanAddrStr);
|
ret = UPNP_GetExternalIPAddress(urls.controlURL, data.first.servicetype, wanAddrStr);
|
||||||
if (ret == UPNPCOMMAND_SUCCESS) {
|
if (ret == UPNPCOMMAND_SUCCESS && strlen(wanAddrStr) > 0) {
|
||||||
wanAddr->sin_addr.S_un.S_addr = inet_addr(wanAddrStr);
|
wanAddr->sin_addr.S_un.S_addr = inet_addr(wanAddrStr);
|
||||||
printf("%s (UPnP)\n", wanAddrStr);
|
printf("%s (UPnP)\n", wanAddrStr);
|
||||||
|
|
||||||
|
if (wanAddr->sin_addr.S_un.S_addr != 0) {
|
||||||
gotWanAddress = true;
|
gotWanAddress = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
char conflictMessage[512];
|
char conflictMessage[512];
|
||||||
*foundPortForwardingRules = true;
|
*foundPortForwardingRules = true;
|
||||||
@@ -601,9 +604,11 @@ bool CheckWANAccess(PSOCKADDR_IN wanAddr, bool* foundPortForwardingRules)
|
|||||||
wanAddr->sin_addr = response.pnu.publicaddress.addr;
|
wanAddr->sin_addr = response.pnu.publicaddress.addr;
|
||||||
inet_ntop(AF_INET, &response.pnu.publicaddress.addr, addrStr, sizeof(addrStr));
|
inet_ntop(AF_INET, &response.pnu.publicaddress.addr, addrStr, sizeof(addrStr));
|
||||||
printf("%s (NAT-PMP)\n", addrStr);
|
printf("%s (NAT-PMP)\n", addrStr);
|
||||||
|
if (wanAddr->sin_addr.S_un.S_addr != 0) {
|
||||||
gotWanAddress = true;
|
gotWanAddress = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!gotWanAddress) {
|
if (!gotWanAddress) {
|
||||||
if (!STUNFindWanAddress(wanAddr)) {
|
if (!STUNFindWanAddress(wanAddr)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user