fixed deadlock when starting torrents with certain invalid tracker URLs
This commit is contained in:
parent
4ca8339337
commit
43aeb2d710
|
@ -28,6 +28,7 @@
|
||||||
incoming connection
|
incoming connection
|
||||||
* added more detailed instrumentation of the disk I/O thread
|
* added more detailed instrumentation of the disk I/O thread
|
||||||
|
|
||||||
|
* fixed deadlock when starting torrents with certain invalid tracker URLs
|
||||||
* fixed iterator bug in disk I/O thread
|
* fixed iterator bug in disk I/O thread
|
||||||
* fixed FIEMAP support on linux
|
* fixed FIEMAP support on linux
|
||||||
* fixed strict aliasing warning on gcc
|
* fixed strict aliasing warning on gcc
|
||||||
|
|
|
@ -253,7 +253,7 @@ namespace libtorrent
|
||||||
|
|
||||||
void http_tracker_connection::on_connect(http_connection& c)
|
void http_tracker_connection::on_connect(http_connection& c)
|
||||||
{
|
{
|
||||||
error_code ec;
|
error_code ec;
|
||||||
tcp::endpoint ep = c.socket().remote_endpoint(ec);
|
tcp::endpoint ep = c.socket().remote_endpoint(ec);
|
||||||
m_tracker_ip = ep.address();
|
m_tracker_ip = ep.address();
|
||||||
boost::shared_ptr<request_callback> cb = requester();
|
boost::shared_ptr<request_callback> cb = requester();
|
||||||
|
|
|
@ -95,7 +95,9 @@ namespace libtorrent
|
||||||
|
|
||||||
if (ec)
|
if (ec)
|
||||||
{
|
{
|
||||||
fail(ec);
|
// never call fail() when the session mutex is locked!
|
||||||
|
m_socket.get_io_service().post(boost::bind(
|
||||||
|
&tracker_connection::fail_disp, self(), ec));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue