merged fix from RC_0_16

This commit is contained in:
Arvid Norberg 2013-10-22 06:59:54 +00:00
parent 1a2226b8f0
commit e7215076ca
2 changed files with 10 additions and 0 deletions

View File

@ -25,6 +25,10 @@
* fix uTP edge case where udp socket buffer fills up * fix uTP edge case where udp socket buffer fills up
* fix nagle implementation in uTP * fix nagle implementation in uTP
* pass along host header with http proxy requests and possible http_connection shutdown hang
0.16.12 release
* fix building with C++11 * fix building with C++11
* fix IPv6 support in UDP socket (uTP) * fix IPv6 support in UDP socket (uTP)
* fix mingw build issues * fix mingw build issues

View File

@ -171,6 +171,7 @@ void http_connection::get(std::string const& url, time_duration timeout, int pri
if (ps->type == proxy_settings::http_pw) if (ps->type == proxy_settings::http_pw)
APPEND_FMT1("Proxy-Authorization: Basic %s\r\n", base64encode( APPEND_FMT1("Proxy-Authorization: Basic %s\r\n", base64encode(
ps->username + ":" + ps->password).c_str()); ps->username + ":" + ps->password).c_str());
APPEND_FMT1("Host: %s", hostname.c_str());
hostname = ps->hostname; hostname = ps->hostname;
port = ps->port; port = ps->port;
} }
@ -667,6 +668,8 @@ void http_connection::on_write(error_code const& e)
return; return;
} }
if (m_abort) return;
std::string().swap(sendbuffer); std::string().swap(sendbuffer);
m_recvbuffer.resize(4096); m_recvbuffer.resize(4096);
@ -701,6 +704,7 @@ void http_connection::on_read(error_code const& e
#if defined TORRENT_ASIO_DEBUGGING #if defined TORRENT_ASIO_DEBUGGING
complete_async("http_connection::on_read"); complete_async("http_connection::on_read");
#endif #endif
if (m_rate_limit) if (m_rate_limit)
{ {
m_download_quota -= bytes_transferred; m_download_quota -= bytes_transferred;
@ -709,6 +713,8 @@ void http_connection::on_read(error_code const& e
if (e == asio::error::operation_aborted) return; if (e == asio::error::operation_aborted) return;
if (m_abort) return;
// keep ourselves alive even if the callback function // keep ourselves alive even if the callback function
// deletes this object // deletes this object
boost::shared_ptr<http_connection> me(shared_from_this()); boost::shared_ptr<http_connection> me(shared_from_this());