From 4523e055275d03f7cebebb53cd51d5c2156593d8 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Sat, 12 May 2018 18:50:23 +0200 Subject: [PATCH] fix uTP and SOCKS5 simulations and update libsimulator --- include/libtorrent/utp_stream.hpp | 7 ------- simulation/libsimulator | 2 +- simulation/test_transfer.cpp | 28 ++++++++++++++++------------ simulation/utils.cpp | 13 ++++++++----- simulation/utils.hpp | 2 +- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/libtorrent/utp_stream.hpp b/include/libtorrent/utp_stream.hpp index 2bc05972e..5f53957f3 100644 --- a/include/libtorrent/utp_stream.hpp +++ b/include/libtorrent/utp_stream.hpp @@ -40,7 +40,6 @@ POSSIBILITY OF SUCH DAMAGE. #include "libtorrent/error_code.hpp" #include "libtorrent/time.hpp" #include "libtorrent/close_reason.hpp" -#include "libtorrent/broadcast_socket.hpp" // for is_v4 #include @@ -300,12 +299,6 @@ struct TORRENT_EXTRA_EXPORT utp_stream template void async_connect(endpoint_type const& endpoint, Handler const& handler) { - if (!is_v4(endpoint)) - { - m_io_service.post(std::bind(handler, boost::asio::error::operation_not_supported)); - return; - } - if (m_impl == nullptr) { m_io_service.post(std::bind(handler, boost::asio::error::not_connected)); diff --git a/simulation/libsimulator b/simulation/libsimulator index 8905f8a0f..ffaccc122 160000 --- a/simulation/libsimulator +++ b/simulation/libsimulator @@ -1 +1 @@ -Subproject commit 8905f8a0faec37ea0655fc2e7921fad40e904749 +Subproject commit ffaccc122691d10131a95bbe085ab325f57a602b diff --git a/simulation/test_transfer.cpp b/simulation/test_transfer.cpp index 0bb5b35cc..bb569994a 100644 --- a/simulation/test_transfer.cpp +++ b/simulation/test_transfer.cpp @@ -125,9 +125,9 @@ void run_test( ta->handle.connect_peer(lt::tcp::endpoint(peer1, 6881)); } on_alert(ses, a); - }); + }, 0); - print_alerts(*ses[1]); + print_alerts(*ses[1], [](lt::session&, lt::alert const*){}, 1); // the first peer is a downloader, the second peer is a seed lt::add_torrent_params params = create_torrent(1); @@ -218,7 +218,8 @@ TORRENT_TEST(no_proxy_utp_ipv6) { using namespace lt; run_test( - [](lt::session&, lt::session&) {}, + [](lt::session& ses0, lt::session& ses1) + { utp_only(ses0); utp_only(ses1); }, [](lt::session&, lt::alert const*) {}, [](std::shared_ptr ses[2]) { TEST_EQUAL(is_seed(*ses[0]), true); @@ -263,31 +264,33 @@ TORRENT_TEST(no_proxy_utp) { using namespace lt; run_test( - [](lt::session&, lt::session&) {}, + [](lt::session& ses0, lt::session& ses1) + { utp_only(ses0); utp_only(ses1); }, [](lt::session&, lt::alert const*) {}, [](std::shared_ptr ses[2]) { TEST_EQUAL(is_seed(*ses[0]), true); } ); } -/* -// TOD: 3 figure out why this test is failing + TORRENT_TEST(encryption_utp) { using namespace lt; run_test( [](lt::session& ses0, lt::session& ses1) - { enable_enc(ses0); enable_enc(ses1); utp_only(ses0); }, + { + enable_enc(ses0); + enable_enc(ses1); + utp_only(ses0); + utp_only(ses1); + }, [](lt::session&, lt::alert const*) {}, [](std::shared_ptr ses[2]) { TEST_EQUAL(is_seed(*ses[0]), true); } ); } -*/ -// TODO: the socks server does not support UDP yet -/* TORRENT_TEST(socks5_utp) { using namespace lt; @@ -297,6 +300,7 @@ TORRENT_TEST(socks5_utp) set_proxy(ses0, settings_pack::socks5); utp_only(ses0); filter_ips(ses1); + utp_only(ses1); }, [](lt::session&, lt::alert const*) {}, [](std::shared_ptr ses[2]) { @@ -304,7 +308,6 @@ TORRENT_TEST(socks5_utp) } ); } -*/ // the purpose of these tests is to make sure that the sessions can't actually // talk directly to each other. i.e. they are negative tests. If they can talk @@ -325,7 +328,8 @@ TORRENT_TEST(no_proxy_utp_banned) { using namespace lt; run_test( - [](lt::session&, lt::session& ses1) { filter_ips(ses1); }, + [](lt::session& ses0, lt::session& ses1) + { utp_only(ses0); utp_only(ses1); filter_ips(ses1); }, [](lt::session&, lt::alert const*) {}, [](std::shared_ptr ses[2]) { TEST_EQUAL(is_seed(*ses[0]), false); diff --git a/simulation/utils.cpp b/simulation/utils.cpp index 490809f08..fe3c8c577 100644 --- a/simulation/utils.cpp +++ b/simulation/utils.cpp @@ -120,14 +120,15 @@ void set_proxy(lt::session& ses, int proxy_type, int flags, bool proxy_peer_conn } void print_alerts(lt::session& ses - , std::function on_alert) + , std::function on_alert + , int const idx) { lt::time_point start_time = lt::clock_type::now(); static std::vector alerts; - ses.set_alert_notify([&ses,start_time,on_alert] { - ses.get_io_service().post([&ses,start_time,on_alert] { + ses.set_alert_notify([&ses,start_time,on_alert,idx] { + ses.get_io_service().post([&ses,start_time,on_alert,idx] { try { alerts.clear(); @@ -135,8 +136,10 @@ void print_alerts(lt::session& ses for (lt::alert const* a : alerts) { - std::printf("%-3d [0] %s\n", int(lt::duration_cast(a->timestamp() - - start_time).count()), a->message().c_str()); + std::printf("%-3d [%d] %s\n" + , int(lt::duration_cast(a->timestamp() - start_time).count()) + , idx + , a->message().c_str()); // call the user handler on_alert(ses, a); } diff --git a/simulation/utils.hpp b/simulation/utils.hpp index 2cdd92e79..b59ef84eb 100644 --- a/simulation/utils.hpp +++ b/simulation/utils.hpp @@ -63,7 +63,7 @@ void set_proxy(lt::session& ses, int proxy_type, int flags = 0 void print_alerts(lt::session& ses , std::function on_alert - = [](lt::session&, lt::alert const*) {}); + = [](lt::session&, lt::alert const*) {}, int idx = 0); #endif