Author: arekm Date: Sun Mar 6 18:31:00 2011 GMT Module: packages Tag: HEAD ---- Log message: - rel 3; fix encryption retries
---- Files affected: packages/libtorrent: libtorrent.spec (1.70 -> 1.71) , libtorrent-encrypt-retry.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/libtorrent/libtorrent.spec diff -u packages/libtorrent/libtorrent.spec:1.70 packages/libtorrent/libtorrent.spec:1.71 --- packages/libtorrent/libtorrent.spec:1.70 Mon Nov 8 21:02:02 2010 +++ packages/libtorrent/libtorrent.spec Sun Mar 6 19:30:55 2011 @@ -8,12 +8,13 @@ Summary(pl.UTF-8): LibTorrent - biblioteka BitTorrenta napisana w C++ dla Uniksa Name: libtorrent Version: 0.12.7 -Release: 2 +Release: 3 License: GPL v2+ Group: Libraries Source0: http://libtorrent.rakshasa.no/downloads/%{name}-%{version}.tar.gz # Source0-md5: 2b5032bd3ef64f0d53f5ea73678e0eb0 Patch0: %{name}-client_list.patch +Patch1: %{name}-encrypt-retry.patch URL: http://libtorrent.rakshasa.no/ BuildRequires: autoconf >= 2.50 BuildRequires: automake @@ -67,6 +68,7 @@ %prep %setup -q %patch0 -p1 +%patch1 -p0 # from libtool 1.9f, autoconf 2.60 can't stand it (endless recursion) rm -f scripts/{libtool,lt*}.m4 @@ -122,6 +124,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.71 2011/03/06 18:30:55 arekm +- rel 3; fix encryption retries + Revision 1.70 2010/11/08 20:02:02 shadzik - rel 2 ================================================================ Index: packages/libtorrent/libtorrent-encrypt-retry.patch diff -u /dev/null packages/libtorrent/libtorrent-encrypt-retry.patch:1.1 --- /dev/null Sun Mar 6 19:31:00 2011 +++ packages/libtorrent/libtorrent-encrypt-retry.patch Sun Mar 6 19:30:55 2011 @@ -0,0 +1,219 @@ +Index: test/Makefile.am +=================================================================== +--- test/Makefile.am (wersja 1189) ++++ test/Makefile.am (wersja 1190) +@@ -6,6 +6,8 @@ + LibTorrentTest_SOURCES = \ + rak/allocators_test.cc \ + rak/allocators_test.h \ ++ rak/ranges_test.cc \ ++ rak/ranges_test.h \ + torrent/object_test.cc \ + torrent/object_test.h \ + torrent/object_test_utils.cc \ +Index: test/rak/ranges_test.cc +=================================================================== +--- test/rak/ranges_test.cc (wersja 0) ++++ test/rak/ranges_test.cc (wersja 1190) +@@ -0,0 +1,41 @@ ++#include "config.h" ++ ++#import "ranges_test.h" ++ ++CPPUNIT_TEST_SUITE_REGISTRATION(RangesTest); ++ ++void ++RangesTest::test_basic() { ++} ++ ++void ++RangesTest::test_intersect() { ++ rak::ranges<int> range; ++ ++ CPPUNIT_ASSERT(range.intersect_distance(0, 0) == 0); ++ CPPUNIT_ASSERT(range.intersect_distance(0, 10) == 0); ++ ++ range.insert(0, 5); ++ ++ CPPUNIT_ASSERT(range.intersect_distance(0, 5) == 5); ++ CPPUNIT_ASSERT(range.intersect_distance(0, 10) == 5); ++ CPPUNIT_ASSERT(range.intersect_distance(-5, 5) == 5); ++ CPPUNIT_ASSERT(range.intersect_distance(-5, 10) == 5); ++ ++ CPPUNIT_ASSERT(range.intersect_distance(2, 2) == 0); ++ CPPUNIT_ASSERT(range.intersect_distance(1, 4) == 3); ++ CPPUNIT_ASSERT(range.intersect_distance(1, 10) == 4); ++ CPPUNIT_ASSERT(range.intersect_distance(-5, 4) == 4); ++ ++ range.insert(10, 15); ++ ++ CPPUNIT_ASSERT(range.intersect_distance(0, 15) == 10); ++ CPPUNIT_ASSERT(range.intersect_distance(0, 20) == 10); ++ CPPUNIT_ASSERT(range.intersect_distance(-5, 15) == 10); ++ CPPUNIT_ASSERT(range.intersect_distance(-5, 20) == 10); ++ ++ CPPUNIT_ASSERT(range.intersect_distance(2, 12) == 5); ++ CPPUNIT_ASSERT(range.intersect_distance(1, 14) == 8); ++ CPPUNIT_ASSERT(range.intersect_distance(1, 20) == 9); ++ CPPUNIT_ASSERT(range.intersect_distance(-5, 14) == 9); ++} +Index: test/rak/ranges_test.h +=================================================================== +--- test/rak/ranges_test.h (wersja 0) ++++ test/rak/ranges_test.h (wersja 1190) +@@ -0,0 +1,19 @@ ++#include <cppunit/extensions/HelperMacros.h> ++ ++#include <vector> ++ ++#include "rak/ranges.h" ++ ++class RangesTest : public CppUnit::TestFixture { ++ CPPUNIT_TEST_SUITE(RangesTest); ++ CPPUNIT_TEST(test_basic); ++ CPPUNIT_TEST(test_intersect); ++ CPPUNIT_TEST_SUITE_END(); ++ ++public: ++ void setUp() {} ++ void tearDown() {} ++ ++ void test_basic(); ++ void test_intersect(); ++}; +Index: src/protocol/handshake_manager.cc +=================================================================== +--- src/protocol/handshake_manager.cc (wersja 1189) ++++ src/protocol/handshake_manager.cc (wersja 1190) +@@ -134,9 +134,13 @@ + + void + HandshakeManager::create_outgoing(const rak::socket_address& sa, DownloadMain* download, int encryptionOptions) { +- PeerInfo* peerInfo = download->peer_list()->connected(sa.c_sockaddr(), +- PeerList::connect_keep_handshakes | PeerList::connect_filter_recent); ++ int connection_options = PeerList::connect_keep_handshakes; + ++ if (!(encryptionOptions & ConnectionManager::encryption_retrying)) ++ connection_options |= PeerList::connect_filter_recent; ++ ++ PeerInfo* peerInfo = download->peer_list()->connected(sa.c_sockaddr(), connection_options); ++ + if (peerInfo == NULL || peerInfo->failed_counter() > max_failed) + return; + +@@ -256,7 +260,7 @@ + error, + handshake->download() != NULL ? &handshake->download()->info()->hash() : NULL); + if (handshake->encryption()->should_retry()) { +- int retry_options = handshake->retry_options(); ++ int retry_options = handshake->retry_options() | ConnectionManager::encryption_retrying; + DownloadMain* download = handshake->download(); + + manager->connection_manager()->signal_handshake_log().emit(sa->c_sockaddr(), +Index: src/torrent/bitfield.cc +=================================================================== +--- src/torrent/bitfield.cc (wersja 1189) ++++ src/torrent/bitfield.cc (wersja 1190) +@@ -43,7 +43,7 @@ + + namespace torrent { + +-// *sigh* ++// Number of set bits in a byte. + static const unsigned char bit_count_256[] = + { + 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, +Index: src/torrent/connection_manager.h +=================================================================== +--- src/torrent/connection_manager.h (wersja 1189) ++++ src/torrent/connection_manager.h (wersja 1190) +@@ -86,6 +86,7 @@ + + // Internal to libtorrent. + static const uint32_t encryption_use_proxy = (1 << 6); ++ static const uint32_t encryption_retrying = (1 << 7); + + enum { + handshake_incoming = 1, +Index: src/torrent/hash_string.cc +=================================================================== +--- src/torrent/hash_string.cc (wersja 1189) ++++ src/torrent/hash_string.cc (wersja 1190) +@@ -60,5 +60,17 @@ + return first; + } + ++const char* ++hash_string_to_hex(const HashString& hash, char* first) { ++ return rak::transform_hex(hash.begin(), hash.end(), first); + } +- ++ ++std::string ++hash_string_to_hex_str(const HashString& hash) { ++ std::string str(HashString::size_data * 2, '\0'); ++ rak::transform_hex(hash.begin(), hash.end(), str.begin()); ++ ++ return str; ++} ++ ++} +Index: src/torrent/hash_string.h +=================================================================== +--- src/torrent/hash_string.h (wersja 1189) ++++ src/torrent/hash_string.h (wersja 1190) +@@ -104,7 +104,10 @@ + }; + + const char* hash_string_from_hex_c_str(const char* first, HashString& hash) LIBTORRENT_EXPORT; +- ++const char* hash_string_to_hex(const HashString& hash, char* first) LIBTORRENT_EXPORT; ++ ++std::string hash_string_to_hex_str(const HashString& hash) LIBTORRENT_EXPORT; ++ + inline bool + operator == (const HashString& one, const HashString& two) { + return std::memcmp(one.begin(), two.begin(), HashString::size_data) == 0; +Index: rak/ranges.h +=================================================================== +--- rak/ranges.h (wersja 1189) ++++ rak/ranges.h (wersja 1190) +@@ -75,6 +75,9 @@ + + // Use find with no closest match. + bool has(Type index) const; ++ ++ size_t intersect_distance(Type first, Type last) const; ++ size_t intersect_distance(value_type range) const; + }; + + template <typename Type> +@@ -159,6 +162,28 @@ + return itr != end() && index >= itr->first; + } + ++template <typename Type> ++size_t ++ranges<Type>::intersect_distance(Type first, Type last) const { ++ return intersect_distance(std::make_pair(first, last)); + } + ++template <typename Type> ++size_t ++ranges<Type>::intersect_distance(value_type range) const { ++ const_iterator first = find(range.first); ++ ++ if (first == end() || range.second <= first->first) ++ return 0; ++ ++ size_t dist = std::min(range.second, first->second) - std::max(range.first, first->first); ++ ++ while (++first != end() && range.second > first->first) ++ dist += std::min(range.second, first->second) - first->first; ++ ++ return dist; ++} ++ ++} ++ + #endif ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/libtorrent/libtorrent.spec?r1=1.70&r2=1.71&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
