summaryrefslogtreecommitdiff
path: root/Source/Core/Common/UPnP.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-07-06 15:36:38 +0200
committerGitHub <noreply@github.com>2021-07-06 15:36:38 +0200
commit954f27c5d7289b2b806d0fb94dd105edaa1bb4be (patch)
tree19cd72928000ffc8ff89da78ed69c3d1d48c4ff1 /Source/Core/Common/UPnP.cpp
parent02309bd0acf030f5f641d427e55b73d59455c4b1 (diff)
parentc3560f033ee69eb4ff0edc916d329e5490058654 (diff)
Merge pull request #9709 from AdmiralCurtiss/upnp-error-log
UPnP: Improve error messages on initialization failure.
Diffstat (limited to 'Source/Core/Common/UPnP.cpp')
-rw-r--r--Source/Core/Common/UPnP.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/Source/Core/Common/UPnP.cpp b/Source/Core/Common/UPnP.cpp
index c5853e6d69..9552236e69 100644
--- a/Source/Core/Common/UPnP.cpp
+++ b/Source/Core/Common/UPnP.cpp
@@ -15,6 +15,7 @@
#include <string>
#include <thread>
#include <upnpcommands.h>
+#include <upnperrors.h>
#include <vector>
static UPNPUrls s_urls;
@@ -51,7 +52,15 @@ static bool InitUPnP()
#endif
if (!devlist)
{
- WARN_LOG_FMT(NETPLAY, "An error occurred trying to discover UPnP devices.");
+ if (upnperror == UPNPDISCOVER_SUCCESS)
+ {
+ WARN_LOG_FMT(NETPLAY, "No UPnP devices could be found.");
+ }
+ else
+ {
+ WARN_LOG_FMT(NETPLAY, "An error occurred trying to discover UPnP devices: {}",
+ strupnperror(upnperror));
+ }
s_error = true;
@@ -59,6 +68,7 @@ static bool InitUPnP()
}
// Look for the IGD
+ bool found_valid_igd = false;
for (UPNPDev* dev = devlist.get(); dev; dev = dev->pNext)
{
if (!std::strstr(dev->st, "InternetGatewayDevice"))
@@ -80,6 +90,7 @@ static bool InitUPnP()
parserootdesc(desc_xml.get(), desc_xml_size, &s_data);
GetUPNPUrls(&s_urls, &s_data, dev->descURL, 0);
+ found_valid_igd = true;
NOTICE_LOG_FMT(NETPLAY, "Got info from IGD at {}.", dev->descURL);
break;
}
@@ -89,6 +100,9 @@ static bool InitUPnP()
}
}
+ if (!found_valid_igd)
+ WARN_LOG_FMT(NETPLAY, "Could not find a valid IGD in the discovered UPnP devices.");
+
s_inited = true;
return true;