forked from premiere/premiere-libtorrent
Fixed UPnP bug where the port and host would be re-used from the xml url when connecting to the control url
This commit is contained in:
parent
f0f285ae63
commit
9a5e261c64
|
@ -200,6 +200,9 @@ private:
|
||||||
|
|
||||||
std::vector<mapping_t> mapping;
|
std::vector<mapping_t> mapping;
|
||||||
|
|
||||||
|
// this is the hostname, port and path
|
||||||
|
// component of the url or the control_url
|
||||||
|
// if it has been found
|
||||||
std::string hostname;
|
std::string hostname;
|
||||||
int port;
|
int port;
|
||||||
std::string path;
|
std::string path;
|
||||||
|
|
18
src/upnp.cpp
18
src/upnp.cpp
|
@ -560,7 +560,7 @@ void upnp::post(upnp::rootdevice const& d, std::string const& soap
|
||||||
|
|
||||||
std::stringstream header;
|
std::stringstream header;
|
||||||
|
|
||||||
header << "POST " << d.control_url << " HTTP/1.1\r\n"
|
header << "POST " << d.path << " HTTP/1.1\r\n"
|
||||||
"Host: " << d.hostname << ":" << d.port << "\r\n"
|
"Host: " << d.hostname << ":" << d.port << "\r\n"
|
||||||
"Content-Type: text/xml; charset=\"utf-8\"\r\n"
|
"Content-Type: text/xml; charset=\"utf-8\"\r\n"
|
||||||
"Content-Length: " << soap.size() << "\r\n"
|
"Content-Length: " << soap.size() << "\r\n"
|
||||||
|
@ -876,6 +876,22 @@ void upnp::on_upnp_xml(error_code const& e
|
||||||
|
|
||||||
d.control_url = s.control_url;
|
d.control_url = s.control_url;
|
||||||
|
|
||||||
|
std::string protocol;
|
||||||
|
std::string auth;
|
||||||
|
char const* error;
|
||||||
|
boost::tie(protocol, auth, d.hostname, d.port, d.path, error)
|
||||||
|
= parse_url_components(d.control_url);
|
||||||
|
|
||||||
|
if (error)
|
||||||
|
{
|
||||||
|
#ifdef TORRENT_UPNP_LOGGING
|
||||||
|
m_log << time_now_string()
|
||||||
|
<< " *** Failed to parse URL '" << d.control_url << "': " << error << std::endl;
|
||||||
|
#endif
|
||||||
|
d.disabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (num_mappings() > 0) update_map(d, 0);
|
if (num_mappings() > 0) update_map(d, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue