Bug 184941

Summary: ktorrent ignores connection limits when using webseeds
Product: [Applications] ktorrent Reporter: Pierre Schmitz <pierre>
Component: generalAssignee: Joris Guisson <joris.guisson>
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:

Description Pierre Schmitz 2009-02-19 14:21:32 UTC
Version:           3.2 (using KDE 4.2.0)
Compiler:          gcc 4.3.3 Arch Linux
OS:                Linux
Installed from:    Unspecified Linux

We have added some of hour http mirrors (53) as webseeds to our torrent files in order to speed up the inital seeding and to prevent the torrent from dieing when users stop seeding.

If you download such a torrent with KTorrent it ignores any connection limit you have set in the options dialog and will just download from every mirror simultanesly.

This seems to produce too much overhead espeically if you have an internet connection with a small bandwidth and some (broken) network adapters or routers don't like that much cennections either.

Here are the torrents I mentioned above: http://downloads.archlinux.de/iso/2009.02/
Comment 1 Joris Guisson 2009-07-09 18:02:14 UTC
This is not fixed yet, why are you closing this ?
Comment 2 Pierre Schmitz 2009-07-09 19:02:48 UTC
Ah sorry,  You are right. I just tested with latest ktorrent. The bandwidth limit is recognized but the number of parallel connections is still not limited.
Comment 3 Joris Guisson 2012-04-20 19:04:36 UTC
Git commit b89d11079a83f25eb82ebdf2d477cda96c0df510 by Joris Guisson.
Committed on 20/04/2012 at 21:03.
Pushed by guisson into branch 'master'.

Webseeds now follow connection limits

M  +1    -0    ChangeLog
M  +2    -1    src/CMakeLists.txt
M  +3    -2    src/diskio/cache.cpp
M  +13   -0    src/download/webseed.cpp
M  +4    -2    src/download/webseed.h
M  +1    -0    src/peer/CMakeLists.txt
A  +107  -0    src/peer/connectionlimit.cpp     [License: GPL (v2+)]
A  +95   -0    src/peer/connectionlimit.h     [License: GPL (v2+)]
M  +13   -3    src/peer/peer.cpp
M  +5    -0    src/peer/peer.h
M  +53   -52   src/peer/peerconnector.cpp
M  +2    -1    src/peer/peerconnector.h
M  +105  -150  src/peer/peermanager.cpp
M  +62   -70   src/peer/peermanager.h
M  +5    -1    src/peer/tests/CMakeLists.txt
A  +137  -0    src/peer/tests/connectionlimittest.cpp     [License: GPL (v2+)]