fix uTP and SOCKS5 simulations and update libsimulator

This commit is contained in:
Arvid Norberg 2018-05-12 18:50:23 +02:00 committed by Arvid Norberg
parent 8bb1cd2b46
commit 4523e05527
5 changed files with 26 additions and 26 deletions

View File

@ -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 <functional>
@ -300,12 +299,6 @@ struct TORRENT_EXTRA_EXPORT utp_stream
template <class Handler>
void async_connect(endpoint_type const& endpoint, Handler const& handler)
{
if (!is_v4(endpoint))
{
m_io_service.post(std::bind<void>(handler, boost::asio::error::operation_not_supported));
return;
}
if (m_impl == nullptr)
{
m_io_service.post(std::bind<void>(handler, boost::asio::error::not_connected));

@ -1 +1 @@
Subproject commit 8905f8a0faec37ea0655fc2e7921fad40e904749
Subproject commit ffaccc122691d10131a95bbe085ab325f57a602b

View File

@ -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<lt::session> 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<lt::session> 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<lt::session> 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<lt::session> 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<lt::session> ses[2]) {
TEST_EQUAL(is_seed(*ses[0]), false);

View File

@ -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<void(lt::session&, lt::alert const*)> on_alert)
, std::function<void(lt::session&, lt::alert const*)> on_alert
, int const idx)
{
lt::time_point start_time = lt::clock_type::now();
static std::vector<lt::alert*> 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<lt::seconds>(a->timestamp()
- start_time).count()), a->message().c_str());
std::printf("%-3d [%d] %s\n"
, int(lt::duration_cast<lt::seconds>(a->timestamp() - start_time).count())
, idx
, a->message().c_str());
// call the user handler
on_alert(ses, a);
}

View File

@ -63,7 +63,7 @@ void set_proxy(lt::session& ses, int proxy_type, int flags = 0
void print_alerts(lt::session& ses
, std::function<void(lt::session&, lt::alert const*)> on_alert
= [](lt::session&, lt::alert const*) {});
= [](lt::session&, lt::alert const*) {}, int idx = 0);
#endif