diff options
author | Peter Alfredsen <loki_val@gentoo.org> | 2008-06-28 11:34:23 +0000 |
---|---|---|
committer | Peter Alfredsen <loki_val@gentoo.org> | 2008-06-28 11:34:23 +0000 |
commit | 6266b89c6dbe3feb4658aa4b42050d25170f8c59 (patch) | |
tree | 542f367a785c55685c2ae5fa31f54c25a087fecb /net-libs | |
parent | Revision bump, fixes bug #229313. Thanks to Thomas Arnett for reporting with ... (diff) | |
download | historical-6266b89c6dbe3feb4658aa4b42050d25170f8c59.tar.gz historical-6266b89c6dbe3feb4658aa4b42050d25170f8c59.tar.bz2 historical-6266b89c6dbe3feb4658aa4b42050d25170f8c59.zip |
Revision bump to update patchset with newest fixes from Josef Drexler. Also fixes bug #227391
Package-Manager: portage-2.2_rc1/cvs/Linux 2.6.25.8 i686
Diffstat (limited to 'net-libs')
-rw-r--r-- | net-libs/libtorrent/ChangeLog | 12 | ||||
-rw-r--r-- | net-libs/libtorrent/Manifest | 7 | ||||
-rw-r--r-- | net-libs/libtorrent/files/libtorrent-0.12.2-fix_have_timer.patch | 47 | ||||
-rw-r--r-- | net-libs/libtorrent/files/libtorrent-0.12.2-fix_pex_leak.patch | 102 | ||||
-rw-r--r-- | net-libs/libtorrent/files/libtorrent-0.12.2-fix_write_datagram.patch | 13 | ||||
-rw-r--r-- | net-libs/libtorrent/libtorrent-0.12.2-r3.ebuild (renamed from net-libs/libtorrent/libtorrent-0.12.2-r2.ebuild) | 7 |
6 files changed, 184 insertions, 4 deletions
diff --git a/net-libs/libtorrent/ChangeLog b/net-libs/libtorrent/ChangeLog index 98a8a439b03d..a08402f24fd1 100644 --- a/net-libs/libtorrent/ChangeLog +++ b/net-libs/libtorrent/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for net-libs/libtorrent # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-libs/libtorrent/ChangeLog,v 1.116 2008/06/05 06:41:55 loki_val Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-libs/libtorrent/ChangeLog,v 1.117 2008/06/28 11:34:22 loki_val Exp $ + +*libtorrent-0.12.2-r3 (28 Jun 2008) + + 28 Jun 2008; Peter Alfredsen <loki_val@gentoo.org> + +files/libtorrent-0.12.2-fix_have_timer.patch, + +files/libtorrent-0.12.2-fix_pex_leak.patch, + +files/libtorrent-0.12.2-fix_write_datagram.patch, + -libtorrent-0.12.2-r2.ebuild, +libtorrent-0.12.2-r3.ebuild: + Revision bump to update patchset with newest fixes from Josef Drexler. + Also fixes bug #227391 *libtorrent-0.12.2-r2 (05 Jun 2008) diff --git a/net-libs/libtorrent/Manifest b/net-libs/libtorrent/Manifest index 07d6da3ab467..c87d60351dfc 100644 --- a/net-libs/libtorrent/Manifest +++ b/net-libs/libtorrent/Manifest @@ -2,12 +2,15 @@ AUX libtorrent-0.11.9+gcc-4.3.patch 3283 RMD160 bb48b1a0de3101fdc74989efd997a33f AUX libtorrent-0.12.2-dht_bounds_fix.patch 870 RMD160 05e7d690a0f808ad293f0304f5eb31936b7c5850 SHA1 89b34f3d74140ceab993573c5eb1d6ceab366a21 SHA256 e8754b864b4108e779b8cfc4f49aac0a63fa0dc6702f3e7b0348477319f1ed54 AUX libtorrent-0.12.2-fix_cull.patch 568 RMD160 1f8b970a885df47f512721216dab6245a733e8d1 SHA1 4af00bdcece5bd4a905b8bf6cde016c5add6ffce SHA256 78cb8cdde1c5b98b4c9f2c96f8e192bd9e963f221c51583b57e61b5bde529e32 AUX libtorrent-0.12.2-fix_dht_target.patch 1646 RMD160 7a15d31c1acba41dda0c39f938a2127f02cb8da4 SHA1 47304fca6bd005f396157c3e1cc9e60df92af45e SHA256 21727f361ead79315e971e2729f84eb71d94eec98c0f852842f6e78ce4011dea +AUX libtorrent-0.12.2-fix_have_timer.patch 2116 RMD160 966f7203d3632adfad8a9be899462b974d9b1cd2 SHA1 9d6f220fe6aad5ea845973d3ab4c5fca98a5c390 SHA256 b4a3ad44765d98dd7dcd4e1361eecd2111ba65aecb123da575ad57cfd1864fbf +AUX libtorrent-0.12.2-fix_pex_leak.patch 3987 RMD160 3374a25e5e3d41efd8af0704ed895e67924b62ca SHA1 ba32e66305e982a99b8281f14a6e60ad3780f817 SHA256 ebd65f89c9dbae4070c3293f412b96eaffc6eacc3acc7de8b5a9eba04c500f24 AUX libtorrent-0.12.2-fix_start_stop_filter.patch 701 RMD160 6b109e050cc1e66d2d9874bce0fdf599188978c9 SHA1 3289506a9c76d080edbeb3ef1a42694a64da6c4d SHA256 d422c5d9a82a0d799f3b949e4b0d2fd293d98baab1fb293642544895ece75926 +AUX libtorrent-0.12.2-fix_write_datagram.patch 554 RMD160 cbd6d3804fad36b2655f57f6d1fcbb717327bb84 SHA1 828947393e4b17d6b2316e0414f15e7fef434688 SHA256 5b0977562852b49e4557c31b092d822c6081ba25b2c763a16e2ca60c08c4ba1d AUX libtorrent-0.12.2-lt-ver.patch 578 RMD160 03fc5d5326bd457c6386db791ceda7e187e8bae2 SHA1 2586464297a9ccc0004d99ef99647715e5cd54ff SHA256 14aedb58c898692be6963a582b55d599f93a74733539238a1f2d0f7c14542586 AUX libtorrent-0.12.2-tracker_timer_fix.patch 952 RMD160 ccf4df0575210f95e758ecee92bc9455c6b470d1 SHA1 5f197cf78a80f31c8770d3dcf7fa5eda215bb0a8 SHA256 ac8669a130de34c5ea4a43eef7da439125ca1ff8ccf3c0ac4a77d8717b839d97 DIST libtorrent-0.11.9.tar.gz 545210 RMD160 fb8de66d65791dab67c195356a98de7cf653d3c9 SHA1 d88e754d1c2ff7f8c5fb7544331264bd505870b8 SHA256 71f09218a7784b21ab53cdfcd8fa122da60352e5ca117fda7cd8d2763f908a08 DIST libtorrent-0.12.2.tar.gz 585374 RMD160 88cdc415f98afd8b87fa6d7330906737c3e434fa SHA1 a53d2c671e9f2dd971d0622d5b3672da91c46ef9 SHA256 cf9d2cd667fd6939a3e0bd27e48d0c7f35d9ab2f7affbb3214da03fd2c1360a8 EBUILD libtorrent-0.11.9.ebuild 1092 RMD160 da7b3481dc661adc564d9fe18b1af41bf9020ec0 SHA1 9d45afa155e37477e94dc9b8ff9d97e9f16a8260 SHA256 66270b7da8e7989c851b569e58f4a342d7080db6470be02998cb4c435120aabe -EBUILD libtorrent-0.12.2-r2.ebuild 1436 RMD160 8f738acbaa5a4418181e70cac930c60cd6a60dc9 SHA1 91736fb5b20f0105e345d815d64d05c09296c676 SHA256 e116b5553f65cf61a1ac83914236a04ba24c3753f4b8be139cbaea546f9dea89 -MISC ChangeLog 17582 RMD160 49ad0b67f234333a093a46c03e938d669bccc48c SHA1 1d09c8da2edf3f2ee5960a6d26c86be281713d18 SHA256 d2a1d68a264825574a8b0db36d1b4f426649116f9aa1743752d3ef8a2d0b4ceb +EBUILD libtorrent-0.12.2-r3.ebuild 1604 RMD160 db7cf561e93e70f42bd8f616dce2c649c4a6bf66 SHA1 5a058d3b5fc3442d236f569d9e0ab62e0db5d9ea SHA256 bb59b47d7c710c457a99eb67c044c72786a6c436aeff2b534dbdcfdbea4249d8 +MISC ChangeLog 17982 RMD160 905c3070d26eec52a231e9d6094d612dbb221a66 SHA1 a2b03217c0e8d336ae8a447e8a9040f9c8e907fc SHA256 695ae536cff5f1efaaa89149ea8086e41e79f93f7c9d1230bf0356781d5e6d7f MISC metadata.xml 436 RMD160 4546e998ce9c6303f4c91d7413b1f732bbb2a8aa SHA1 fb1f2cddef7e268bf64572615fbc3c326ed673fd SHA256 936fb95c2c44078d98c0c74d0b148744036d6a18d40b8b482d7656ef0e211bff diff --git a/net-libs/libtorrent/files/libtorrent-0.12.2-fix_have_timer.patch b/net-libs/libtorrent/files/libtorrent-0.12.2-fix_have_timer.patch new file mode 100644 index 000000000000..c42c3f925885 --- /dev/null +++ b/net-libs/libtorrent/files/libtorrent-0.12.2-fix_have_timer.patch @@ -0,0 +1,47 @@ +Index: libtorrent/src/protocol/handshake_manager.cc +=================================================================== +--- libtorrent/src/protocol/handshake_manager.cc (revision 1060) ++++ libtorrent/src/protocol/handshake_manager.cc (working copy) +@@ -208,13 +208,13 @@ + e_none, + &download->info()->hash()); + ++ pcb->peer_chunks()->set_have_timer(handshake->initialized_time()); ++ + if (handshake->unread_size() != 0) { + if (handshake->unread_size() > PeerConnectionBase::ProtocolRead::buffer_size) + throw internal_error("HandshakeManager::receive_succeeded(...) Unread data won't fit PCB's read buffer."); + + pcb->push_unread(handshake->unread_data(), handshake->unread_size()); +- pcb->peer_chunks()->set_have_timer(handshake->initialized_time()); +- + pcb->event_read(); + } + +Index: libtorrent/src/protocol/handshake.cc +=================================================================== +--- libtorrent/src/protocol/handshake.cc (revision 1060) ++++ libtorrent/src/protocol/handshake.cc (working copy) +@@ -86,8 +86,6 @@ + m_uploadThrottle(manager->upload_throttle()->throttle_list()), + m_downloadThrottle(manager->download_throttle()->throttle_list()), + +- m_initializedTime(cachedTime), +- + m_readDone(false), + m_writeDone(false), + +@@ -524,6 +522,13 @@ + if (m_peerInfo->supports_extensions()) + write_extension_handshake(); + ++ // Replay HAVE messages we receive after starting to send the bitfield. ++ // This avoids replaying HAVEs for pieces received between starting the ++ // handshake and now (e.g. when connecting takes longer). Ideally we ++ // should make a snapshot of the bitfield here in case it changes while ++ // we're sending it (if it can't be sent in one write() call). ++ m_initializedTime = cachedTime; ++ + // The download is just starting so we're not sending any + // bitfield. Pretend we wrote it already. + if (m_download->file_list()->bitfield()->is_all_unset() || m_download->initial_seeding() != NULL) { diff --git a/net-libs/libtorrent/files/libtorrent-0.12.2-fix_pex_leak.patch b/net-libs/libtorrent/files/libtorrent-0.12.2-fix_pex_leak.patch new file mode 100644 index 000000000000..91bdc5fdfea9 --- /dev/null +++ b/net-libs/libtorrent/files/libtorrent-0.12.2-fix_pex_leak.patch @@ -0,0 +1,102 @@ +Index: libtorrent/src/net/data_buffer.h +=================================================================== +--- libtorrent/src/net/data_buffer.h (revision 1026) ++++ libtorrent/src/net/data_buffer.h (working copy) +@@ -44,26 +44,28 @@ + + // Recipient must call clear() when done with the buffer. + struct DataBuffer { +- DataBuffer() : m_data(NULL), m_end(NULL), m_copied(false) {} +- DataBuffer(char* data, char* end) : m_data(data), m_end(end), m_copied(false) {} ++ DataBuffer() : m_data(NULL), m_end(NULL), m_owned(true) {} ++ DataBuffer(char* data, char* end) : m_data(data), m_end(end), m_owned(true) {} + ++ DataBuffer clone() const { DataBuffer d = *this; d.m_owned = false; return d; } ++ + char* data() const { return m_data; } + char* end() const { return m_end; } + +- bool copied() const { return m_copied; } ++ bool owned() const { return m_owned; } + bool empty() const { return m_data == NULL; } + size_t length() const { return m_end - m_data; } + + void clear(); +- void set(char* data, char* end, bool copied); ++ void set(char* data, char* end, bool owned); + + private: + char* m_data; + char* m_end; + +- // Used to indicate if buffer held by PCB is copied and needs to be +- // deleted after transmission. +- bool m_copied; ++ // Used to indicate if buffer held by PCB is its own and needs to be ++ // deleted after transmission (false if shared with other connections). ++ bool m_owned; + }; + + inline void +@@ -72,14 +74,14 @@ + delete[] m_data; + + m_data = m_end = NULL; +- m_copied = false; ++ m_owned = false; + } + + inline void +-DataBuffer::set(char* data, char* end, bool copied) { ++DataBuffer::set(char* data, char* end, bool owned) { + m_data = data; + m_end = end; +- m_copied = copied; ++ m_owned = owned; + } + + } +Index: libtorrent/src/protocol/peer_connection_base.cc +=================================================================== +--- libtorrent/src/protocol/peer_connection_base.cc (revision 1026) ++++ libtorrent/src/protocol/peer_connection_base.cc (working copy) +@@ -92,7 +92,7 @@ + if (m_extensions != NULL && !m_extensions->is_default()) + delete m_extensions; + +- if (m_extensionMessage.copied()) ++ if (m_extensionMessage.owned()) + m_extensionMessage.clear(); + } + +@@ -665,7 +665,7 @@ + bool + PeerConnectionBase::up_extension() { + if (m_extensionOffset == extension_must_encrypt) { +- if (m_extensionMessage.copied()) { ++ if (m_extensionMessage.owned()) { + m_encryption.encrypt(m_extensionMessage.data(), m_extensionMessage.length()); + + } else { +@@ -690,7 +690,7 @@ + + // clear() deletes the buffer, only do that if we made a copy, + // otherwise the buffer is shared among all connections. +- if (m_extensionMessage.copied()) ++ if (m_extensionMessage.owned()) + m_extensionMessage.clear(); + else + m_extensionMessage.set(NULL, NULL, false); +Index: libtorrent/src/download/download_main.h +=================================================================== +--- libtorrent/src/download/download_main.h (revision 1026) ++++ libtorrent/src/download/download_main.h (working copy) +@@ -105,7 +105,7 @@ + ThrottleList* download_throttle() { return m_downloadThrottle; } + void set_download_throttle(ThrottleList* t) { m_downloadThrottle = t; } + +- DataBuffer get_ut_pex(bool initial) { return initial ? m_ut_pex_initial : m_ut_pex_delta; } ++ DataBuffer get_ut_pex(bool initial) { return (initial ? m_ut_pex_initial : m_ut_pex_delta).clone(); } + + bool want_pex_msg() { return m_info->is_pex_active() && m_peerList.available_list()->want_more(); }; + diff --git a/net-libs/libtorrent/files/libtorrent-0.12.2-fix_write_datagram.patch b/net-libs/libtorrent/files/libtorrent-0.12.2-fix_write_datagram.patch new file mode 100644 index 000000000000..f89cd0f26d39 --- /dev/null +++ b/net-libs/libtorrent/files/libtorrent-0.12.2-fix_write_datagram.patch @@ -0,0 +1,13 @@ +Index: libtorrent/src/net/socket_datagram.cc +=================================================================== +--- libtorrent/src/net/socket_datagram.cc (revision 1060) ++++ libtorrent/src/net/socket_datagram.cc (working copy) +@@ -73,7 +73,7 @@ + int r; + + if (sa != NULL) { +- r = ::sendto(m_fileDesc, buffer, length, 0, sa->c_sockaddr(), sizeof(rak::socket_address)); ++ r = ::sendto(m_fileDesc, buffer, length, 0, sa->sa_inet()->c_sockaddr(), sizeof(rak::socket_address_inet)); + } else { + r = ::send(m_fileDesc, buffer, length, 0); + } diff --git a/net-libs/libtorrent/libtorrent-0.12.2-r2.ebuild b/net-libs/libtorrent/libtorrent-0.12.2-r3.ebuild index f6193d03f5d2..f5dbd6a76d37 100644 --- a/net-libs/libtorrent/libtorrent-0.12.2-r2.ebuild +++ b/net-libs/libtorrent/libtorrent-0.12.2-r3.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-libs/libtorrent/libtorrent-0.12.2-r2.ebuild,v 1.1 2008/06/05 06:41:55 loki_val Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-libs/libtorrent/libtorrent-0.12.2-r3.ebuild,v 1.1 2008/06/28 11:34:22 loki_val Exp $ inherit autotools eutils toolchain-funcs flag-o-matic libtool @@ -24,8 +24,12 @@ src_unpack() { epatch "${FILESDIR}"/${P}-dht_bounds_fix.patch epatch "${FILESDIR}"/${P}-fix_cull.patch epatch "${FILESDIR}"/${P}-fix_dht_target.patch + epatch "${FILESDIR}"/${P}-fix_have_timer.patch + epatch "${FILESDIR}"/${P}-fix_pex_leak.patch + epatch "${FILESDIR}"/${P}-fix_write_datagram.patch epatch "${FILESDIR}"/${P}-lt-ver.patch epatch "${FILESDIR}"/${P}-tracker_timer_fix.patch + elibtoolize #Don't remove eautoreconf } @@ -40,6 +44,7 @@ src_compile() { econf \ $(use_enable debug) \ $(use_enable ipv6) \ + --enable-aligned \ --enable-static \ --enable-shared \ --disable-dependency-tracking \ |