diff options
Diffstat (limited to 'modules/upnp')
-rw-r--r-- | modules/upnp/SCsub | 15 | ||||
-rw-r--r-- | modules/upnp/upnp.cpp | 6 |
2 files changed, 12 insertions, 9 deletions
diff --git a/modules/upnp/SCsub b/modules/upnp/SCsub index bc0b215be3..b2fed0cb23 100644 --- a/modules/upnp/SCsub +++ b/modules/upnp/SCsub @@ -12,18 +12,19 @@ thirdparty_obj = [] if env["builtin_miniupnpc"]: thirdparty_dir = "#thirdparty/miniupnpc/" thirdparty_sources = [ + "igd_desc_parse.c", "miniupnpc.c", - "upnpcommands.c", + "minixml.c", + "minisoap.c", + "minissdpc.c", "miniwget.c", + "upnpcommands.c", "upnpdev.c", - "igd_desc_parse.c", - "minissdpc.c", - "minisoap.c", - "minixml.c", + "upnpreplyparse.c", "connecthostport.c", - "receivedata.c", "portlistingparse.c", - "upnpreplyparse.c", + "receivedata.c", + "addr_is_reserved.c", ] thirdparty_sources = [thirdparty_dir + "miniupnpc/" + file for file in thirdparty_sources] diff --git a/modules/upnp/upnp.cpp b/modules/upnp/upnp.cpp index cff13251ce..8e4e833d45 100644 --- a/modules/upnp/upnp.cpp +++ b/modules/upnp/upnp.cpp @@ -52,10 +52,12 @@ int UPNP::discover(int timeout, int ttl, const String &device_filter) { int error = 0; struct UPNPDev *devlist; + CharString cs = discover_multicast_if.utf8(); + const char *m_if = cs.length() ? cs.get_data() : nullptr; if (is_common_device(device_filter)) { - devlist = upnpDiscover(timeout, discover_multicast_if.utf8().get_data(), nullptr, discover_local_port, discover_ipv6, ttl, &error); + devlist = upnpDiscover(timeout, m_if, nullptr, discover_local_port, discover_ipv6, ttl, &error); } else { - devlist = upnpDiscoverAll(timeout, discover_multicast_if.utf8().get_data(), nullptr, discover_local_port, discover_ipv6, ttl, &error); + devlist = upnpDiscoverAll(timeout, m_if, nullptr, discover_local_port, discover_ipv6, ttl, &error); } if (error != UPNPDISCOVER_SUCCESS) { |