fixed issue where an http proxy would not be used on redirects
This commit is contained in:
parent
beca9b3da5
commit
2ec1c81cd3
|
@ -111,6 +111,7 @@
|
|||
* added support for torrents with odd piece sizes
|
||||
* fixed issue with disk read cache not being cleared when removing torrents
|
||||
* made the DHT socket bind to the same interface as the session
|
||||
* fixed issue where an http proxy would not be used on redirects
|
||||
|
||||
release 0.14.9
|
||||
|
||||
|
|
|
@ -117,7 +117,6 @@ void http_connection::get(std::string const& url, time_duration timeout, int pri
|
|||
ps->username + ":" + ps->password).c_str());
|
||||
hostname = ps->hostname;
|
||||
port = ps->port;
|
||||
ps = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -220,6 +219,17 @@ void http_connection::start(std::string const& hostname, std::string const& port
|
|||
}
|
||||
#endif
|
||||
|
||||
// in this case, the upper layer is assumed to have taken
|
||||
// care of the proxying already. Don't instantiate the socket
|
||||
// with this proxy
|
||||
if ((ps->type == proxy_settings::http
|
||||
|| ps->type == proxy_settings::http_pw)
|
||||
&& !ssl)
|
||||
{
|
||||
ps = 0;
|
||||
}
|
||||
proxy_settings null_proxy;
|
||||
|
||||
#ifdef TORRENT_USE_OPENSSL
|
||||
if (m_ssl)
|
||||
{
|
||||
|
@ -236,7 +246,8 @@ void http_connection::start(std::string const& hostname, std::string const& port
|
|||
else
|
||||
#endif
|
||||
{
|
||||
ret = instantiate_connection(m_resolver.get_io_service(), m_proxy, s->next_layer());
|
||||
ret = instantiate_connection(m_resolver.get_io_service()
|
||||
, ps ? *ps : null_proxy, s->next_layer());
|
||||
}
|
||||
|
||||
TORRENT_ASSERT(ret);
|
||||
|
@ -257,12 +268,13 @@ void http_connection::start(std::string const& hostname, std::string const& port
|
|||
#endif
|
||||
{
|
||||
ret = instantiate_connection(m_resolver.get_io_service()
|
||||
, m_proxy, *m_sock.get<socket_type>());
|
||||
, ps ? *ps : null_proxy, *m_sock.get<socket_type>());
|
||||
}
|
||||
TORRENT_ASSERT(ret);
|
||||
}
|
||||
#else
|
||||
bool ret = instantiate_connection(m_resolver.get_io_service(), m_proxy, m_sock);
|
||||
bool ret = instantiate_connection(m_resolver.get_io_service()
|
||||
, ps ? *ps : null_proxy, m_sock);
|
||||
TORRENT_ASSERT(ret);
|
||||
#endif
|
||||
if (m_bind_addr != address_v4::any())
|
||||
|
|
Loading…
Reference in New Issue