Fix UPnP IGD detection (#689)

This commit is contained in:
Tony Langhammer
2023-01-03 22:09:07 +01:00
committed by GitHub
parent 052297a1a5
commit 30a790ba40

View File

@@ -82,6 +82,8 @@ static std::string_view status_string(int status) {
case 1: case 1:
return "Valid IGD device found"sv; return "Valid IGD device found"sv;
case 2: case 2:
return "Valid IGD device found, but it isn't connected"sv;
case 3:
return "A UPnP device has been found, but it wasn't recognized as an IGD"sv; return "A UPnP device has been found, but it wasn't recognized as an IGD"sv;
} }
@@ -109,7 +111,7 @@ std::unique_ptr<platf::deinit_t> start() {
IGDdatas data; IGDdatas data;
auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size()); auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size());
if(status != 1) { if(status != 1 && status != 2) {
BOOST_LOG(error) << status_string(status); BOOST_LOG(error) << status_string(status);
return nullptr; return nullptr;
} }