Your message dated Fri, 08 Jan 2010 12:47:09 +0000
with message-id <[email protected]>
and subject line Bug#561232: fixed in libtorrent 0.12.6-2
has caused the Debian Bug report #561232,
regarding libtorrent11: "encryption = try_outgoing,enable_retry" is borked
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
561232: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=561232
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libtorrent11
Version: 0.12.5-2
Severity: normal
Tags: patch


Submitted upstream as bug 2008:
http://libtorrent.rakshasa.no/ticket/2008

I'm seeing the same issue as
http://libtorrent.rakshasa.no/ticket/1748

The server side is running Debian/stable with bittorrent 3.4.2-11.1, which 
doesn't support encryption. When I have encryption = 
allow_incoming,try_outgoing,enable_retry on the client side I see one attempted 
encrypted handshake, but no unencrypted retry in wireshark.

I've tracked this down to create_outgoing() filtering out the retry because of 
PeerList::connect_filter_recent. If I comment out the 
PeerList::connect_filter_recent retry works as expected.

I've tried checking this bug against SVN, but it doesn't compile: 
../../../rak/allocators.h:77: error: ‘L1_CACHE_BYTES’ was not declared in this 
scope 

The following hackish patch fixes this issue for me:
diff -Naru libtorrent.orig/src/protocol/handshake_manager.cc 
libtorrent-0.12.5/src/protocol/handshake_manager.cc
--- libtorrent.orig/src/protocol/handshake_manager.cc   2009-05-13 
22:04:11.000000000 +0900
+++ libtorrent-0.12.5/src/protocol/handshake_manager.cc 2009-12-15 
20:05:22.288137626 +0900
@@ -134,8 +134,12 @@
 
 void
 HandshakeManager::create_outgoing(const rak::socket_address& sa, DownloadMain* 
download, int encryptionOptions) {
+  int peerlist_options = PeerList::connect_keep_handshakes;
+  if (!(encryptionOptions & ConnectionManager::encryption_dont_filter_recent)) 
{
+    peerlist_options |= PeerList::connect_filter_recent;
+  }
   PeerInfo* peerInfo = download->peer_list()->connected(sa.c_sockaddr(),
-                                                        
PeerList::connect_keep_handshakes | PeerList::connect_filter_recent);
+                                                        peerlist_options);
 
   if (peerInfo == NULL || peerInfo->failed_counter() > max_failed)
     return;
@@ -266,6 +270,7 @@
                                                                e_none,
                                                                
&download->info()->hash());
 
+    retry_options |= ConnectionManager::encryption_dont_filter_recent;
     create_outgoing(*sa, download, retry_options);
   }
 
diff -Naru libtorrent.orig/src/torrent/connection_manager.h 
libtorrent-0.12.5/src/torrent/connection_manager.h
--- libtorrent.orig/src/torrent/connection_manager.h    2008-05-07 
21:19:13.000000000 +0900
+++ libtorrent-0.12.5/src/torrent/connection_manager.h  2009-12-15 
20:04:20.560262767 +0900
@@ -86,6 +86,7 @@
 
   // Internal to libtorrent.
   static const uint32_t encryption_use_proxy        = (1 << 6);
+  static const uint32_t encryption_dont_filter_recent = (1 << 7);
 
   enum {
     handshake_incoming           = 1,

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.32 (PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libtorrent11 depends on:
ii  libc6                         2.10.1-6   GNU C Library: Shared libraries
ii  libgcc1                       1:4.4.2-2  GCC support library
ii  libsigc++-2.0-0c2a            2.0.18-2   type-safe Signal Framework for C++
ii  libssl0.9.8                   0.9.8k-5   SSL shared libraries
ii  libstdc++6                    4.4.2-2    The GNU Standard C++ Library v3

libtorrent11 recommends no packages.

libtorrent11 suggests no packages.

-- no debconf information

-- debsums errors found:
debsums: changed file /usr/lib/libtorrent.so.11.0.5 (from libtorrent11 package)




--- End Message ---
--- Begin Message ---
Source: libtorrent
Source-Version: 0.12.6-2

We believe that the bug you reported is fixed in the latest version of
libtorrent, which is due to be installed in the Debian FTP archive:

libtorrent-dev_0.12.6-2_i386.deb
  to main/libt/libtorrent/libtorrent-dev_0.12.6-2_i386.deb
libtorrent11_0.12.6-2_i386.deb
  to main/libt/libtorrent/libtorrent11_0.12.6-2_i386.deb
libtorrent_0.12.6-2.diff.gz
  to main/libt/libtorrent/libtorrent_0.12.6-2.diff.gz
libtorrent_0.12.6-2.dsc
  to main/libt/libtorrent/libtorrent_0.12.6-2.dsc



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Dmitry E. Oboukhov <[email protected]> (supplier of updated libtorrent package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

Format: 1.8
Date: Fri, 08 Jan 2010 15:18:09 +0300
Source: libtorrent
Binary: libtorrent-dev libtorrent11
Architecture: source i386
Version: 0.12.6-2
Distribution: unstable
Urgency: low
Maintainer: Rogério Brito <[email protected]>
Changed-By: Dmitry E. Oboukhov <[email protected]>
Description: 
 libtorrent-dev - a C++ BitTorrent library by Rakshasa (development files)
 libtorrent11 - a C++ BitTorrent library by Rakshasa
Closes: 561232
Changes: 
 libtorrent (0.12.6-2) unstable; urgency=low
 .
   * Applied patch to fix "encryption = try_outgoing,enable_retry" option,
     thanks for Tobias Diedrich <[email protected]>,
     closes: #561232.
Checksums-Sha1: 
 8a135d303ed64f53d85b64f76c89c2cfb0165bb8 1348 libtorrent_0.12.6-2.dsc
 490c07c63a0b10ea2fa949769db9724cad6f3727 13596 libtorrent_0.12.6-2.diff.gz
 a9bcc49cae173b813a8e1e641657f702db42ccb6 45730 libtorrent-dev_0.12.6-2_i386.deb
 2d1e698c67f0e455ad5504d9bd8cc3543d9f81e7 337114 libtorrent11_0.12.6-2_i386.deb
Checksums-Sha256: 
 4d8770bd74f8f2c0b18dd0f8f57ccdcc9656b7cf8a5861d3c2db3b399e6b994b 1348 
libtorrent_0.12.6-2.dsc
 0ae1dd15a3a87cc5528bdc84734a53db40f9dc4b16f735f4810c7ae9fbf89ab6 13596 
libtorrent_0.12.6-2.diff.gz
 7fe7ff6010a8960361cb3f2a5942974f3ec3d6ab7877a6161f5ac6efd05f971c 45730 
libtorrent-dev_0.12.6-2_i386.deb
 b8919a9778a936dae9d52465fc77578b6f5737920ddec93d7ee5488119653f30 337114 
libtorrent11_0.12.6-2_i386.deb
Files: 
 ce40db9f662fc4f5f3829451c11b3cd7 1348 libs extra libtorrent_0.12.6-2.dsc
 55c496dbc5da4b93ecc3e19d953a05fd 13596 libs extra libtorrent_0.12.6-2.diff.gz
 202c640a14233d021fdf9b32ff9fb974 45730 libdevel extra 
libtorrent-dev_0.12.6-2_i386.deb
 b915844072c52e2740762fdb6a5f6fa7 337114 libs extra 
libtorrent11_0.12.6-2_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEAREDAAYFAktHJKAACgkQq4wAz/jiZTeHDQCdGMi5M0LIHOjeIjqXNkAo27rk
c30AoJIT732QCreApXle2I9VuvM0qMbr
=tWl4
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to