forked from premiere/premiere-libtorrent
fix up i2p merge
This commit is contained in:
parent
68bc4f2cf4
commit
2c89fa40e2
|
@ -115,7 +115,7 @@ namespace libtorrent
|
|||
url += "?";
|
||||
|
||||
url += "info_hash=";
|
||||
url += escape_string((const char*)&tracker_req().info_hash[0], 20);
|
||||
url += escape_string(tracker_req().info_hash.data(), 20);
|
||||
|
||||
if (0 == (tracker_req().kind & tracker_request::scrape_request))
|
||||
{
|
||||
|
@ -135,7 +135,7 @@ namespace libtorrent
|
|||
"&numwant=%d"
|
||||
"&compact=1"
|
||||
"&no_peer_id=1"
|
||||
, escape_string((const char*)&tracker_req().pid[0], 20).c_str()
|
||||
, escape_string(tracker_req().pid.data(), 20).c_str()
|
||||
// the i2p tracker seems to verify that the port is not 0,
|
||||
// even though it ignores it otherwise
|
||||
, i2p ? 1 : tracker_req().listen_port
|
||||
|
@ -169,9 +169,14 @@ namespace libtorrent
|
|||
if (i2p && tracker_req().i2pconn)
|
||||
{
|
||||
if (tracker_req().i2pconn->local_endpoint().empty())
|
||||
{
|
||||
fail(error_code(errors::no_i2p_endpoint), -1, "Waiting for i2p acceptor from SAM bridge", 5);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
url += "&ip=" + tracker_req ().i2pconn->local_endpoint () + ".i2p";
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
@ -363,9 +368,9 @@ namespace libtorrent
|
|||
std::list<address> ip_list;
|
||||
if (m_tracker_connection)
|
||||
{
|
||||
error_code ec;
|
||||
error_code ignore;
|
||||
ip_list.push_back(
|
||||
m_tracker_connection->socket().remote_endpoint(ec).address());
|
||||
m_tracker_connection->socket().remote_endpoint(ignore).address());
|
||||
std::vector<tcp::endpoint> const& epts = m_tracker_connection->endpoints();
|
||||
for (std::vector<tcp::endpoint>::const_iterator i = epts.begin()
|
||||
, end(epts.end()); i != end; ++i)
|
||||
|
@ -416,7 +421,7 @@ namespace libtorrent
|
|||
ec.assign(errors::invalid_tracker_response, get_libtorrent_category());
|
||||
return false;
|
||||
}
|
||||
ret.port = (unsigned short)i.int_value();
|
||||
ret.port = boost::uint16_t(i.int_value());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -521,7 +526,6 @@ namespace libtorrent
|
|||
if (len - i < 6) break;
|
||||
|
||||
ipv4_peer_entry p;
|
||||
error_code ec;
|
||||
p.ip = detail::read_v4_address(peers).to_v4().to_bytes();
|
||||
p.port = detail::read_uint16(peers);
|
||||
resp.peers4.push_back(p);
|
||||
|
|
|
@ -104,7 +104,7 @@ TORRENT_TEST(parse_peers4)
|
|||
TORRENT_TEST(parse_i2p_peers)
|
||||
{
|
||||
// d8:completei8e10:incompletei4e8:intervali3600e5:peers352: ...
|
||||
char const response[] = { 0x64, 0x38, 0x3a, 0x63, 0x6f, 0x6d,
|
||||
boost::uint8_t const response[] = { 0x64, 0x38, 0x3a, 0x63, 0x6f, 0x6d,
|
||||
0x70, 0x6c, 0x65, 0x74, 0x65, 0x69, 0x38, 0x65, 0x31, 0x30,
|
||||
0x3a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
|
||||
0x65, 0x69, 0x34, 0x65, 0x38, 0x3a, 0x69, 0x6e, 0x74, 0x65,
|
||||
|
@ -147,7 +147,8 @@ TORRENT_TEST(parse_i2p_peers)
|
|||
0xc2, 0x8a, 0x22, 0x6b, 0x47, 0xc1, 0xd1, 0x52, 0x61, 0x66,
|
||||
0xa0, 0x75, 0xab, 0x65 };
|
||||
error_code ec;
|
||||
tracker_response resp = parse_tracker_response(response, sizeof(response)
|
||||
tracker_response resp = parse_tracker_response(
|
||||
reinterpret_cast<char const*>(response), sizeof(response)
|
||||
, ec, tracker_request::i2p, sha1_hash());
|
||||
|
||||
TEST_EQUAL(ec, error_code());
|
||||
|
@ -156,7 +157,6 @@ TORRENT_TEST(parse_i2p_peers)
|
|||
if (resp.peers.size() == 11)
|
||||
{
|
||||
TEST_EQUAL(resp.peers[0].hostname, "wgcobfq73pzmtmcttiy2knon5bm2a7gn6j6idaiccf53ikwrecdq.b32.i2p");
|
||||
// TEST_EQUAL(resp.peers[9].hostname, "cbmvhhhgdmxha4toqj5qhphse2n3henk6g5geev3orfxardudgza.b32.i2p");
|
||||
TEST_EQUAL(resp.peers[10].hostname, "ufunemgwuun5t2sn3oay4zv7jvwdezwcrirgwr6b2fjgczvaowvq.b32.i2p");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue