fix issue with UDP socket closing before UDP trackers having a chance of sending stopped event
This commit is contained in:
parent
0c7b5ab3da
commit
eed5ec97a6
|
@ -350,16 +350,14 @@ void udp_socket::close()
|
||||||
TORRENT_ASSERT(m_magic == 0x1337);
|
TORRENT_ASSERT(m_magic == 0x1337);
|
||||||
|
|
||||||
error_code ec;
|
error_code ec;
|
||||||
m_ipv4_sock.close(ec);
|
m_ipv4_sock.cancel(ec);
|
||||||
#if TORRENT_USE_IPV6
|
#if TORRENT_USE_IPV6
|
||||||
m_ipv6_sock.close(ec);
|
m_ipv6_sock.cancel(ec);
|
||||||
#endif
|
#endif
|
||||||
m_socks5_sock.close(ec);
|
m_socks5_sock.cancel(ec);
|
||||||
m_resolver.cancel();
|
m_resolver.cancel();
|
||||||
m_abort = true;
|
m_abort = true;
|
||||||
#ifdef TORRENT_DEBUG
|
|
||||||
m_outstanding_when_aborted = m_outstanding;
|
|
||||||
#endif
|
|
||||||
if (m_connection_ticket >= 0)
|
if (m_connection_ticket >= 0)
|
||||||
{
|
{
|
||||||
m_cc.done(m_connection_ticket);
|
m_cc.done(m_connection_ticket);
|
||||||
|
@ -470,6 +468,8 @@ void udp_socket::set_proxy_settings(proxy_settings const& ps)
|
||||||
|
|
||||||
m_proxy_settings = ps;
|
m_proxy_settings = ps;
|
||||||
|
|
||||||
|
if (m_abort) return;
|
||||||
|
|
||||||
if (ps.type == proxy_settings::socks5
|
if (ps.type == proxy_settings::socks5
|
||||||
|| ps.type == proxy_settings::socks5_pw)
|
|| ps.type == proxy_settings::socks5_pw)
|
||||||
{
|
{
|
||||||
|
@ -510,6 +510,8 @@ void udp_socket::on_connect(int ticket)
|
||||||
CHECK_MAGIC;
|
CHECK_MAGIC;
|
||||||
mutex::scoped_lock l(m_mutex);
|
mutex::scoped_lock l(m_mutex);
|
||||||
|
|
||||||
|
if (m_abort) return;
|
||||||
|
|
||||||
m_connection_ticket = ticket;
|
m_connection_ticket = ticket;
|
||||||
error_code ec;
|
error_code ec;
|
||||||
m_socks5_sock.open(m_proxy_addr.address().is_v4()?tcp::v4():tcp::v6(), ec);
|
m_socks5_sock.open(m_proxy_addr.address().is_v4()?tcp::v4():tcp::v6(), ec);
|
||||||
|
|
Loading…
Reference in New Issue