From dafcf2c5cabfa740ce93f50c6ac8a8e54d55a124 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Sat, 14 Apr 2012 23:36:16 +0000 Subject: [PATCH] fixed web seed performance issue whith pieces > 1 MiB --- ChangeLog | 1 + src/web_peer_connection.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d062ead44..beb1c5a4f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,5 @@ + * fixed web seed performance issue whith pieces > 1 MiB * fixed unchoke logic when using web seeds * fixed compatibility with older versions of boost (down to boost 1.40) diff --git a/src/web_peer_connection.cpp b/src/web_peer_connection.cpp index decbb1950..cbc3e57e1 100644 --- a/src/web_peer_connection.cpp +++ b/src/web_peer_connection.cpp @@ -84,9 +84,10 @@ namespace libtorrent shared_ptr tor = t.lock(); TORRENT_ASSERT(tor); - // we always prefer downloading 1 MB chunks - // from web seeds - prefer_whole_pieces((1024 * 1024) / tor->torrent_file().piece_length()); + // we always prefer downloading 1 MiB chunks + // from web seeds, or whole pieces if pieces + // are larger than a MiB + prefer_whole_pieces((std::min)((1024 * 1024) / tor->torrent_file().piece_length(), 1)); // we want large blocks as well, so // we can request more bytes at once