packages: libtorrent/libtorrent.spec, libtorrent/libtorrent-encrypt-retry.p...
arekm
arekm at pld-linux.org
Sun Mar 6 19:31:00 CET 2011
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
More information about the pld-cvs-commit
mailing list