From 17201984a601f452fd13d6065c95b0552693293b Mon Sep 17 00:00:00 2001 From: rakshasa Date: Mon, 16 Apr 2012 00:40:47 +0900 Subject: [PATCH] When 'throttle.max_*.global.*.set' commands are called they will automatically update the libtorrent settings, so it is no longer needed to set the throttle to force this update. --- configure.ac | 2 +- src/command_throttle.cc | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 58b01f5a..09dd25f1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_INIT(rtorrent, 0.9.1, jaris@ifi.uio.no) -AC_DEFINE(API_VERSION, 5, api version) +AC_DEFINE(API_VERSION, 6, api version) AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) diff --git a/src/command_throttle.cc b/src/command_throttle.cc index 2f203d5f..ea749aea 100644 --- a/src/command_throttle.cc +++ b/src/command_throttle.cc @@ -163,7 +163,9 @@ apply_address_throttle(const torrent::Object::list_type& args) { } torrent::Object -throttle_update() { +throttle_update(const char* variable, int64_t value) { + rpc::commands.call_command(variable, value); + control->ui()->adjust_up_throttle(0); control->ui()->adjust_down_throttle(0); return torrent::Object(); @@ -184,12 +186,20 @@ initialize_command_throttle() { CMD2_VAR_VALUE ("throttle.min_downloads", 0); CMD2_VAR_VALUE ("throttle.max_downloads", 50); - CMD2_VAR_VALUE ("throttle.max_uploads.div", 1); - CMD2_VAR_VALUE ("throttle.max_uploads.global", 0); - CMD2_VAR_VALUE ("throttle.max_downloads.div", 1); - CMD2_VAR_VALUE ("throttle.max_downloads.global", 0); + CMD2_VAR_VALUE ("throttle.max_uploads.div._val", 1); + CMD2_VAR_VALUE ("throttle.max_uploads.global._val", 0); + CMD2_VAR_VALUE ("throttle.max_downloads.div._val", 1); + CMD2_VAR_VALUE ("throttle.max_downloads.global._val", 0); - CMD2_ANY ("throttle.update", tr1::bind(&throttle_update)); + CMD2_REDIRECT_GENERIC("throttle.max_uploads.div", "throttle.max_uploads.div._val"); + CMD2_REDIRECT_GENERIC("throttle.max_uploads.global", "throttle.max_uploads.global._val"); + CMD2_REDIRECT_GENERIC("throttle.max_downloads.div", "throttle.max_downloads.div._val"); + CMD2_REDIRECT_GENERIC("throttle.max_downloads.global", "throttle.max_downloads.global._val"); + + CMD2_ANY_VALUE ("throttle.max_uploads.div.set", tr1::bind(&throttle_update, "throttle.max_uploads.div._val.set", tr1::placeholders::_2)); + CMD2_ANY_VALUE ("throttle.max_uploads.global.set", tr1::bind(&throttle_update, "throttle.max_uploads.global._val.set", tr1::placeholders::_2)); + CMD2_ANY_VALUE ("throttle.max_downloads.div.set", tr1::bind(&throttle_update, "throttle.max_downloads.div._val.set", tr1::placeholders::_2)); + CMD2_ANY_VALUE ("throttle.max_downloads.global.set", tr1::bind(&throttle_update, "throttle.max_downloads.global._val.set", tr1::placeholders::_2)); // TODO: Move the logic into some libtorrent function. CMD2_ANY ("throttle.global_up.rate", tr1::bind(&torrent::Rate::rate, torrent::up_rate()));