make test_privacy less likely to fail spuriously
This commit is contained in:
parent
61d2c8c1f5
commit
744e5bcfa6
|
@ -450,43 +450,8 @@ void http_connection::close(bool force)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef TORRENT_USE_OPENSSL
|
async_shutdown(m_sock, shared_from_this());
|
||||||
auto self = shared_from_this();
|
|
||||||
// for SSL connections, first do an async_shutdown, before closing the socket
|
|
||||||
#if defined TORRENT_ASIO_DEBUGGING
|
|
||||||
#define MAYBE_ASIO_DEBUGGING add_outstanding_async("on_close_socket");
|
|
||||||
#else
|
|
||||||
#define MAYBE_ASIO_DEBUGGING
|
|
||||||
#endif
|
|
||||||
|
|
||||||
auto handler = [=](error_code const&) {
|
|
||||||
COMPLETE_ASYNC("on_close_socket");
|
|
||||||
error_code e;
|
|
||||||
self->m_timer.cancel(e);
|
|
||||||
self->m_sock.close(e);
|
|
||||||
};
|
|
||||||
|
|
||||||
#define CASE(t) case aux::socket_type_int_impl<ssl_stream<t>>::value: \
|
|
||||||
MAYBE_ASIO_DEBUGGING \
|
|
||||||
m_sock.get<ssl_stream<t>>()->async_shutdown(std::move(handler)); \
|
|
||||||
break;
|
|
||||||
|
|
||||||
switch (m_sock.type())
|
|
||||||
{
|
|
||||||
CASE(tcp::socket)
|
|
||||||
CASE(socks5_stream)
|
|
||||||
CASE(http_stream)
|
|
||||||
CASE(utp_stream)
|
|
||||||
default:
|
|
||||||
m_sock.close(ec);
|
|
||||||
m_timer.cancel(ec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#undef CASE
|
|
||||||
#else
|
|
||||||
m_sock.close(ec);
|
|
||||||
m_timer.cancel(ec);
|
m_timer.cancel(ec);
|
||||||
#endif // TORRENT_USE_OPENSSL
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_limiter_timer.cancel(ec);
|
m_limiter_timer.cancel(ec);
|
||||||
|
|
|
@ -158,7 +158,10 @@ session_proxy test_proxy(settings_pack::proxy_type_t proxy_type, flags_t flags)
|
||||||
|
|
||||||
std::vector<std::string> accepted_trackers;
|
std::vector<std::string> accepted_trackers;
|
||||||
|
|
||||||
const int timeout = 30;
|
int const timeout = 30;
|
||||||
|
std::size_t const expected_trackers
|
||||||
|
= ((flags & expect_http_connection) ? 2 : 0)
|
||||||
|
+ ((flags & expect_udp_connection) ? 2 : 0);
|
||||||
|
|
||||||
for (int i = 0; i < timeout; ++i)
|
for (int i = 0; i < timeout; ++i)
|
||||||
{
|
{
|
||||||
|
@ -176,7 +179,7 @@ session_proxy test_proxy(settings_pack::proxy_type_t proxy_type, flags_t flags)
|
||||||
|
|
||||||
if (num_udp_announces() >= prev_udp_announces + 1
|
if (num_udp_announces() >= prev_udp_announces + 1
|
||||||
&& num_peer_hits() > 0
|
&& num_peer_hits() > 0
|
||||||
&& accepted_trackers.size() >= 2)
|
&& accepted_trackers.size() >= expected_trackers)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -206,22 +209,26 @@ session_proxy test_proxy(settings_pack::proxy_type_t proxy_type, flags_t flags)
|
||||||
|
|
||||||
if (flags & expect_http_connection)
|
if (flags & expect_http_connection)
|
||||||
{
|
{
|
||||||
|
std::printf("expecting: %s\n", http_tracker_url);
|
||||||
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
||||||
, http_tracker_url) != accepted_trackers.end());
|
, http_tracker_url) != accepted_trackers.end());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
std::printf("NOT expecting: %s\n", http_tracker_url);
|
||||||
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
||||||
, http_tracker_url) == accepted_trackers.end());
|
, http_tracker_url) == accepted_trackers.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & expect_udp_connection)
|
if (flags & expect_udp_connection)
|
||||||
{
|
{
|
||||||
|
std::printf("expecting: %s\n", udp_tracker_url);
|
||||||
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
||||||
, udp_tracker_url) != accepted_trackers.end());
|
, udp_tracker_url) != accepted_trackers.end());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
std::printf("NOT expecting: %s\n", udp_tracker_url);
|
||||||
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
TEST_CHECK(std::find(accepted_trackers.begin(), accepted_trackers.end()
|
||||||
, udp_tracker_url) == accepted_trackers.end());
|
, udp_tracker_url) == accepted_trackers.end());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue