forked from rakshasa/rtorrent
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix partially done downloads and choke groups #15
Labels
Comments
Partially done downloadsLet's try to fit partially done downloads into the ecosystem of rtorrent:
I. Fixes for known bugs
II. New commands in rtorrent
III. UI changes in rtorrent
|
Depends on:
|
chros73
pushed a commit
that referenced
this issue
Mar 6, 2017
chros73
pushed a commit
that referenced
this issue
Mar 10, 2018
…d remove the unneeded command (See #15)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Choke groups
I. Summary
This is a powerful feature that should be used if you deal with group of torrents (e.g. you use
throttle
groups) like here.It allows to set 3 major property per group (2 others (up, down) per property, except for
tracker.mode
):choke_group.tracker.mode
: decides on how aggressive a tracker should bechoke_group.up.heuristics
: set the heuristics used when deciding on which peers to choke and unchokechoke_group.up.max
: set the max total number of unchoked peers for all torrents in this choke groupThe last property is the really interesting one! It restricts the number of unchoked peers in a group!
I just found it by accident (while I have been working on fixing partially done donwloads) that dealing with choke heuristics has been dramatically changed since libtorrent v0.13.0 but rtorrent (client) part left untouched since then (last good version is 0.8.9-0.12.9 in this regard).
libtorrent
since v0.13.0default
rtorrent
hasn't been modified (just a bit to don't get broken)default
) for all the torrents, meansupload_leech
heuristics is used for seeding as wellchoke_group.up.max
doesn't workIt works fine by default until somebody wants to change the config - there's a
default
choke group - (a hack was applied for integrating into the client).II. Bugs
choke_heuristics
code is unnecessary in command_download.cccore/download_list.cc
protocol.choke_heuristics.up.seed
hasn't been updated toupload_seed
in command_network.cc , but I think it's not needed anymored.group
property isn't saved and not initialized with the download in core/download_factory.cc , old code can be removedd.group.name
command gives back index instead of the name of the groupchoke_heuristics
code is unnecessary in libtorrent@torrent/download.h and libtorrent@torrent/download.ccIII. Fixes for mentioned bugs
command_download.cc
core/download_list.cc@resume()
andcore/download_list.cc@confirm_finished()
core/download_list.cc
core/download_factory.cc
d.group_name
incommand_download.cc
ui/download.cc
libtorrent@torrent/download.*
command_groups.cc
and got rid of the hack code (also incore/download.h
)IV. Additions
default
todefault_leech
in [email protected]default_seed
inmain.cc
convert.group
has been created incommand_ui.cc
(similarly toconvert.throttle
)Choke group: default_seed [upload_seed, download_leech, aggressive] [Max --/--]
Choke group stat: [Size 149] [Unchoked 18/0] [Queued 0/0] [Total 18/0] [Rate 952.3/ 0.0 KB]
V. Other fixes
total_skipped
between sessions incore/download_factory.cc
andcore/download_store.cc
(used on Info screen)VI. Choke groups in action
I'll update the wiki page if it will be merged, but until then here's a teaser:
let's extend the Favoring group of torrents example to include
public
(!!!) torrents as well! :)tardyup
, along withslowup
slowup_leech
,slowup_seed
,tardyup_leech
,tardyup_seed
) along with the built-in 2 ones (default_leech
,default_seed
)choke_group.up.max
setting on the fly (!) with a help of an external script (like we did with thethrottle
speed)The text was updated successfully, but these errors were encountered: