forked from premiere/premiere-libtorrent
DHT fix
This commit is contained in:
parent
af09935b87
commit
8213814102
|
@ -844,7 +844,9 @@ void node_impl::incoming_request(msg const& m, entry& e)
|
||||||
dht_immutable_table_t::iterator j = std::min_element(m_immutable_table.begin()
|
dht_immutable_table_t::iterator j = std::min_element(m_immutable_table.begin()
|
||||||
, m_immutable_table.end()
|
, m_immutable_table.end()
|
||||||
, boost::bind(&dht_immutable_item::num_announcers
|
, boost::bind(&dht_immutable_item::num_announcers
|
||||||
, boost::bind(&dht_immutable_table_t::value_type::second, _1)));
|
, boost::bind(&dht_immutable_table_t::value_type::second, _1))
|
||||||
|
< boost::bind(&dht_immutable_item::num_announcers
|
||||||
|
, boost::bind(&dht_immutable_table_t::value_type::second, _2)));
|
||||||
TORRENT_ASSERT(j != m_immutable_table.end());
|
TORRENT_ASSERT(j != m_immutable_table.end());
|
||||||
free(j->second.value);
|
free(j->second.value);
|
||||||
m_immutable_table.erase(j);
|
m_immutable_table.erase(j);
|
||||||
|
|
|
@ -37,6 +37,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "libtorrent/bencode.hpp"
|
#include "libtorrent/bencode.hpp"
|
||||||
#include "libtorrent/socket_io.hpp" // for hash_address
|
#include "libtorrent/socket_io.hpp" // for hash_address
|
||||||
#include "libtorrent/rsa.hpp" // for generate_rsa_keys and sign_rsa
|
#include "libtorrent/rsa.hpp" // for generate_rsa_keys and sign_rsa
|
||||||
|
#include "libtorrent/broadcast_socket.hpp" // for supports_ipv6
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "test.hpp"
|
#include "test.hpp"
|
||||||
|
@ -447,14 +448,17 @@ int test_main()
|
||||||
test.set(iphash);
|
test.set(iphash);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 0x3E8; ++i)
|
if (supports_ipv6())
|
||||||
{
|
{
|
||||||
char adr[50];
|
for (int i = 0; i < 0x3E8; ++i)
|
||||||
snprintf(adr, 50, "2001:db8::%x", i);
|
{
|
||||||
address a = address::from_string(adr);
|
char adr[50];
|
||||||
sha1_hash iphash;
|
snprintf(adr, 50, "2001:db8::%x", i);
|
||||||
hash_address(a, iphash);
|
address a = address::from_string(adr);
|
||||||
test.set(iphash);
|
sha1_hash iphash;
|
||||||
|
hash_address(a, iphash);
|
||||||
|
test.set(iphash);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// these are test vectors from BEP 33
|
// these are test vectors from BEP 33
|
||||||
|
@ -462,7 +466,14 @@ int test_main()
|
||||||
fprintf(stderr, "test.size: %f\n", test.size());
|
fprintf(stderr, "test.size: %f\n", test.size());
|
||||||
TEST_CHECK(fabs(test.size() - 1224.93f) < 0.001);
|
TEST_CHECK(fabs(test.size() - 1224.93f) < 0.001);
|
||||||
fprintf(stderr, "%s\n", to_hex(test.to_string()).c_str());
|
fprintf(stderr, "%s\n", to_hex(test.to_string()).c_str());
|
||||||
TEST_CHECK(to_hex(test.to_string()) == "f6c3f5eaa07ffd91bde89f777f26fb2bff37bdb8fb2bbaa2fd3ddde7bacfff75ee7ccbaefe5eedb1fbfaff67f6abff5e43ddbca3fd9b9ffdf4ffd3e9dff12d1bdf59db53dbe9fa5b7ff3b8fdfcde1afb8bedd7be2f3ee71ebbbfe93bcdeefe148246c2bc5dbff7e7efdcf24fd8dc7adffd8fffdfddfff7a4bbeedf5cb95ce81fc7fcff1ff4ffffdfe5f7fdcbb7fd79b3fa1fc77bfe07fff905b7b7ffc7fefeffe0b8370bb0cd3f5b7f2bd93feb4386cfdd6f7fd5bfaf2e9ebffffeecd67adbf7c67f17efd5d75eba6ffeba7fff47a91eb1bfbb53e8abfb5762abe8ff237279bfefbfeef5ffc5febfdfe5adffadfee1fb737ffffbfd9f6aeffeee76b6fd8f72ef");
|
if (supports_ipv6())
|
||||||
|
{
|
||||||
|
TEST_CHECK(to_hex(test.to_string()) == "f6c3f5eaa07ffd91bde89f777f26fb2bff37bdb8fb2bbaa2fd3ddde7bacfff75ee7ccbaefe5eedb1fbfaff67f6abff5e43ddbca3fd9b9ffdf4ffd3e9dff12d1bdf59db53dbe9fa5b7ff3b8fdfcde1afb8bedd7be2f3ee71ebbbfe93bcdeefe148246c2bc5dbff7e7efdcf24fd8dc7adffd8fffdfddfff7a4bbeedf5cb95ce81fc7fcff1ff4ffffdfe5f7fdcbb7fd79b3fa1fc77bfe07fff905b7b7ffc7fefeffe0b8370bb0cd3f5b7f2bd93feb4386cfdd6f7fd5bfaf2e9ebffffeecd67adbf7c67f17efd5d75eba6ffeba7fff47a91eb1bfbb53e8abfb5762abe8ff237279bfefbfeef5ffc5febfdfe5adffadfee1fb737ffffbfd9f6aeffeee76b6fd8f72ef");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TEST_CHECK(to_hex(test.to_string()) == "24c0004020043000102012743e00480037110820422110008000c0e302854835a05401a4045021302a306c060001881002d8a0a3a8001901b40a800900310008d2108110c2496a0028700010d804188b01415200082004088026411104a804048002002000080680828c400080cc40020c042c0494447280928041402104080d4240040414a41f0205654800b0811830d2020042b002c5800004a71d0204804a0028120a004c10017801490b834004044106005421000c86900a0020500203510060144e900100924a1018141a028012913f0041802250042280481200002004430804210101c08111c10801001080002038008211004266848606b035001048");
|
||||||
|
}
|
||||||
|
|
||||||
response.clear();
|
response.clear();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue