From 413becea388a77f296c25db33fe17d0c9c7b007c Mon Sep 17 00:00:00 2001 From: Jari Sundell Date: Sat, 22 Oct 2011 18:47:43 +0900 Subject: [PATCH 01/20] Added some autoconf files to '.gitignore'. --- .gitignore | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitignore b/.gitignore index c97ffecf..25d8dd5e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,21 @@ +.deps +.libs +Makefile aclocal.m4 +autom4te.cache +config.h +config.guess +config.status +confdefs.h +conftest.dir +configure +depcomp +install-sh +libtool +ltmain.sh +missing +stamp-h1 + src/rtorrent scripts/libtool.m4 scripts/ltoptions.m4 From 8d4aed7daeaa5a0bbf0d115759fa89dc71a961e6 Mon Sep 17 00:00:00 2001 From: Jari Sundell Date: Sun, 6 Nov 2011 23:14:06 +0900 Subject: [PATCH 02/20] Use new function for inserting tracker. --- src/command_download.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/command_download.cc b/src/command_download.cc index 940cb13f..18ed09c4 100644 --- a/src/command_download.cc +++ b/src/command_download.cc @@ -48,7 +48,7 @@ #include #include #include -#include +#include #include #include #include @@ -475,7 +475,7 @@ download_tracker_insert(core::Download* download, const torrent::Object::list_ty if (group < 0 || group > 32) throw torrent::input_error("Tracker group number invalid."); - download->download()->tracker_controller()->insert(group, args.back().as_string(), true); + download->download()->tracker_list()->insert_url(group, args.back().as_string(), true); return torrent::Object(); } From 52530d55380e6453a820a29b4370539f847047aa Mon Sep 17 00:00:00 2001 From: Jari Sundell Date: Mon, 7 Nov 2011 21:34:06 +0900 Subject: [PATCH 03/20] Added more scrape information to tracker info. --- src/command_tracker.cc | 6 ++++-- src/core/manager.cc | 4 +++- src/display/window_tracker_list.cc | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/command_tracker.cc b/src/command_tracker.cc index 6da29dea..1af9b616 100644 --- a/src/command_tracker.cc +++ b/src/command_tracker.cc @@ -72,12 +72,14 @@ initialize_command_tracker() { CMD2_TRACKER ("t.min_interval", std::bind(&torrent::Tracker::min_interval, std::placeholders::_1)); CMD2_TRACKER ("t.success_time_last", std::bind(&torrent::Tracker::success_time_last, std::placeholders::_1)); - CMD2_TRACKER ("t.failed_time_last", std::bind(&torrent::Tracker::failed_time_last, std::placeholders::_1)); - CMD2_TRACKER ("t.success_counter", std::bind(&torrent::Tracker::success_counter, std::placeholders::_1)); + + CMD2_TRACKER ("t.failed_time_last", std::bind(&torrent::Tracker::failed_time_last, std::placeholders::_1)); CMD2_TRACKER ("t.failed_counter", std::bind(&torrent::Tracker::failed_counter, std::placeholders::_1)); CMD2_TRACKER ("t.scrape_time_last", std::bind(&torrent::Tracker::scrape_time_last, std::placeholders::_1)); + CMD2_TRACKER ("t.scrape_counter", std::bind(&torrent::Tracker::scrape_counter, std::placeholders::_1)); + CMD2_TRACKER ("t.scrape_complete", std::bind(&torrent::Tracker::scrape_complete, std::placeholders::_1)); CMD2_TRACKER ("t.scrape_incomplete", std::bind(&torrent::Tracker::scrape_incomplete, std::placeholders::_1)); CMD2_TRACKER ("t.scrape_downloaded", std::bind(&torrent::Tracker::scrape_downloaded, std::placeholders::_1)); diff --git a/src/core/manager.cc b/src/core/manager.cc index b185758c..d36e78fa 100644 --- a/src/core/manager.cc +++ b/src/core/manager.cc @@ -76,6 +76,8 @@ #include "poll_manager_select.h" #include "view.h" +namespace std { using namespace tr1; } + namespace core { void @@ -204,7 +206,7 @@ Manager::get_address_throttle(const sockaddr* addr) { // Most of this should be possible to move out. void Manager::initialize_second() { - torrent::Http::set_factory(sigc::mem_fun(m_httpStack, &CurlStack::new_object)); + torrent::Http::set_factory(std::bind(&CurlStack::new_object, m_httpStack)); m_httpQueue->slot_factory(sigc::mem_fun(m_httpStack, &CurlStack::new_object)); CurlStack::global_init(); diff --git a/src/display/window_tracker_list.cc b/src/display/window_tracker_list.cc index 6ede0c52..729f4524 100644 --- a/src/display/window_tracker_list.cc +++ b/src/display/window_tracker_list.cc @@ -89,14 +89,16 @@ WindowTrackerList::redraw() { tracker->url().c_str()); if (pos < m_canvas->height()) - m_canvas->print(4, pos++, "Id: %s Failed: %u/%u Enabled: %s Open: %s S/L: %u/%u", + m_canvas->print(4, pos++, "Id: %s Counters: %uf / %us (%u) Enabled: %s Open: %s S/L/D: %u/%u/%u", rak::copy_escape_html(tracker->tracker_id()).c_str(), tracker->failed_counter(), tracker->success_counter(), + tracker->scrape_counter(), tracker->is_usable() ? "yes" : tracker->is_enabled() ? "off" : " no", tracker->is_busy() ? "yes" : " no", tracker->scrape_complete(), - tracker->scrape_incomplete()); + tracker->scrape_incomplete(), + tracker->scrape_downloaded()); // m_canvas->print(4, pos++, "Id: %s Focus: %s Enabled: %s Open: %s Timer: %u/%u", // rak::copy_escape_html(tracker->tracker_id()).c_str(), From c55f5611a90d2792a26dfa1bc4583900491d8dd9 Mon Sep 17 00:00:00 2001 From: Jari Sundell Date: Tue, 8 Nov 2011 00:45:11 +0900 Subject: [PATCH 04/20] Added 'd.tracker.send_scrape = ' command for sending scrape requests to all trackers that support it. Newly inserted downloads send scrape requests after 30 seconds. --- src/command_download.cc | 4 ++++ src/core/download.h | 3 +++ src/main.cc | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/command_download.cc b/src/command_download.cc index 18ed09c4..91c35443 100644 --- a/src/command_download.cc +++ b/src/command_download.cc @@ -48,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -582,6 +583,7 @@ d_list_remove(core::Download* download, const torrent::Object& rawArgs, const ch #define CMD2_BIND_FL std::bind(&core::Download::file_list, std::placeholders::_1) #define CMD2_BIND_PL std::bind(&core::Download::c_peer_list, std::placeholders::_1) #define CMD2_BIND_TL std::bind(&core::Download::tracker_list, std::placeholders::_1) +#define CMD2_BIND_TC std::bind(&core::Download::tracker_controller, std::placeholders::_1) #define CMD2_BIND_INFO std::bind(&core::Download::info, std::placeholders::_1) #define CMD2_BIND_DATA std::bind(&core::Download::data, std::placeholders::_1) @@ -824,7 +826,9 @@ initialize_command_download() { // TODO: Deprecate 'd.tracker_focus'. CMD2_DL ("d.tracker_focus", std::bind(&core::Download::tracker_list_size, std::placeholders::_1)); CMD2_DL ("d.tracker_size", std::bind(&core::Download::tracker_list_size, std::placeholders::_1)); + CMD2_DL_LIST ("d.tracker.insert", std::bind(&download_tracker_insert, std::placeholders::_1, std::placeholders::_2)); + CMD2_DL_VALUE_V ("d.tracker.send_scrape", std::bind(&torrent::TrackerController::scrape_request, CMD2_BIND_TC, std::placeholders::_2)); CMD2_DL ("d.directory", CMD2_ON_FL(root_dir)); CMD2_DL_STRING_V("d.directory.set", std::bind(&apply_d_directory, std::placeholders::_1, std::placeholders::_2)); diff --git a/src/core/download.h b/src/core/download.h index 6939e8d8..78df4c04 100644 --- a/src/core/download.h +++ b/src/core/download.h @@ -60,6 +60,7 @@ public: typedef torrent::FileList file_list_type; typedef torrent::PeerList peer_list_type; typedef torrent::TrackerList tracker_list_type; + typedef torrent::TrackerController tracker_controller_type; typedef torrent::ConnectionList connection_list_type; typedef download_type::ConnectionType connection_type; @@ -105,6 +106,8 @@ public: tracker_list_type* tracker_list() { return m_download.tracker_list(); } uint32_t tracker_list_size() const { return m_download.tracker_list()->size(); } + tracker_controller_type* tracker_controller() { return m_download.tracker_controller(); } + connection_list_type* connection_list() { return m_download.connection_list(); } uint32_t connection_list_size() const; diff --git a/src/main.cc b/src/main.cc index ec19794a..6c207df7 100644 --- a/src/main.cc +++ b/src/main.cc @@ -247,7 +247,8 @@ main(int argc, char** argv) { "method.insert = event.download.hash_removed,multi|rlookup|static\n" "method.insert = event.download.hash_queued,multi|rlookup|static\n" - "method.set_key = event.download.inserted, 1_connect_logs, d.initialize_logs=\n" + "method.set_key = event.download.inserted, 1_connect_logs, ((d.initialize_logs))\n" + "method.set_key = event.download.inserted, 1_send_scrape, ((d.tracker.send_scrape,30))\n" "method.set_key = event.download.inserted_new, 1_prepare, \"branch=d.state=,view.set_visible=started,view.set_visible=stopped ;d.save_full_session=\"\n" "method.set_key = event.download.inserted_session, 1_prepare, \"branch=d.state=,view.set_visible=started,view.set_visible=stopped\"\n" From cfc4984c3a982844b4b01d2deef75c04c1101ccd Mon Sep 17 00:00:00 2001 From: rakshasa Date: Wed, 8 Feb 2012 15:15:09 +0900 Subject: [PATCH 05/20] Reverted version to stable. --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 8dbf6093..c37ff72c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT(rtorrent, 0.9.0, jaris@ifi.uio.no) +AC_INIT(rtorrent, 0.8.9, jaris@ifi.uio.no) AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) @@ -42,7 +42,7 @@ PKG_CHECK_MODULES(libcurl, libcurl >= 7.15.4, CXXFLAGS="$CXXFLAGS $libcurl_CFLAGS"; LIBS="$LIBS $libcurl_LIBS") -PKG_CHECK_MODULES(libtorrent, libtorrent >= 0.13.0, +PKG_CHECK_MODULES(libtorrent, libtorrent >= 0.12.9, CXXFLAGS="$CXXFLAGS $libtorrent_CFLAGS"; LIBS="$LIBS $libtorrent_LIBS") From 51fff1fdc5ef4516f42cfedeaa07d09fb8f2a67c Mon Sep 17 00:00:00 2001 From: rakshasa Date: Mon, 26 Mar 2012 16:26:56 +0900 Subject: [PATCH 06/20] Fixed version number. --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 84414dc1..c9e239d9 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT(rtorrent, 0.9.1, jaris@ifi.uio.no) +AC_INIT(rtorrent, 0.8.9, jaris@ifi.uio.no) AC_DEFINE(API_VERSION, 1, api version) @@ -49,7 +49,7 @@ PKG_CHECK_MODULES(libcurl, libcurl >= 7.15.4, CXXFLAGS="$CXXFLAGS $libcurl_CFLAGS"; LIBS="$LIBS $libcurl_LIBS") -PKG_CHECK_MODULES(libtorrent, libtorrent >= 0.13.1, +PKG_CHECK_MODULES(libtorrent, libtorrent >= 0.12.9, CXXFLAGS="$CXXFLAGS $libtorrent_CFLAGS"; LIBS="$LIBS $libtorrent_LIBS") From 9aa54d2344917f5ec57167d9825ea939470b2ad6 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Thu, 29 Mar 2012 23:04:17 +0900 Subject: [PATCH 07/20] Added 'directory.watch.added'. --- src/command_events.cc | 25 +++++++++++++++++++++++++ src/control.cc | 4 ++++ src/control.h | 11 +++++++++-- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/command_events.cc b/src/command_events.cc index 65d18228..2d7f9f03 100644 --- a/src/command_events.cc +++ b/src/command_events.cc @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -45,6 +46,7 @@ #include #include #include +#include #include "core/download.h" #include "core/download_list.h" @@ -306,6 +308,27 @@ d_multicall(const torrent::Object::list_type& args) { return resultRaw; } +static void +call_watch_command(const std::string& command, const std::string& path) { + rpc::commands.call_catch(command.c_str(), rpc::make_target(), path); +} + +torrent::Object +directory_watch_added(const torrent::Object::list_type& args) { + if (args.size() != 2) + throw torrent::input_error("Too few arguments."); + + const std::string& path = args.front().as_string(); + const std::string& command = args.back().as_string(); + + if (!control->directory_events()->open()) + throw torrent::input_error("Could not open inotify:" + std::string(rak::error_number::current().c_str())); + + control->directory_events()->notify_on(path.c_str(), + torrent::directory_events::flag_on_added | torrent::directory_events::flag_on_updated, + tr1::bind(&call_watch_command, command, tr1::placeholders::_1)); +} + void initialize_command_events() { CMD2_ANY_STRING ("on_ratio", tr1::bind(&apply_on_ratio, tr1::placeholders::_2)); @@ -335,4 +358,6 @@ initialize_command_events() { CMD2_ANY_LIST ("download_list", tr1::bind(&apply_download_list, tr1::placeholders::_2)); CMD2_ANY_LIST ("d.multicall2", tr1::bind(&d_multicall, tr1::placeholders::_2)); + + CMD2_ANY_LIST ("directory.watch.added", tr1::bind(&directory_watch_added, tr1::placeholders::_2)); } diff --git a/src/control.cc b/src/control.cc index 29603594..bb18ab60 100644 --- a/src/control.cc +++ b/src/control.cc @@ -39,6 +39,7 @@ #include #include #include +#include #include "core/manager.h" #include "core/download_store.h" @@ -66,6 +67,7 @@ Control::Control() : m_commandScheduler(new rpc::CommandScheduler()), m_objectStorage(new rpc::object_storage()), + m_directory_events(new torrent::directory_events()), m_tick(0), m_shutdownReceived(false), @@ -93,6 +95,7 @@ Control::~Control() { delete m_core; delete m_dhtManager; + delete m_directory_events; delete m_commandScheduler; delete m_objectStorage; } @@ -157,6 +160,7 @@ Control::handle_shutdown() { worker_thread->queue_item(&ThreadBase::stop_thread); torrent::connection_manager()->listen_close(); + m_directory_events->close(); m_core->shutdown(false); if (!m_taskShutdown.is_queued()) diff --git a/src/control.h b/src/control.h index 29f3bcbd..474614a3 100644 --- a/src/control.h +++ b/src/control.h @@ -68,6 +68,10 @@ namespace rpc { class object_storage; } +namespace torrent { + class directory_events; +} + class Control { public: Control(); @@ -99,6 +103,8 @@ public: rpc::CommandScheduler* command_scheduler() { return m_commandScheduler; } rpc::object_storage* object_storage() { return m_objectStorage; } + torrent::directory_events* directory_events() { return m_directory_events; } + uint64_t tick() const { return m_tick; } void inc_tick() { m_tick++; } @@ -118,8 +124,9 @@ private: input::Manager* m_input; input::InputEvent* m_inputStdin; - rpc::CommandScheduler* m_commandScheduler; - rpc::object_storage* m_objectStorage; + rpc::CommandScheduler* m_commandScheduler; + rpc::object_storage* m_objectStorage; + torrent::directory_events* m_directory_events; uint64_t m_tick; From 9c2745ecb3b6e420b4153f4fc1cd30b73c6f6fe7 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Tue, 10 Apr 2012 15:38:07 +0900 Subject: [PATCH 08/20] Added missing return value to watched command. --- src/command_events.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/command_events.cc b/src/command_events.cc index 2d7f9f03..1fb6c5dc 100644 --- a/src/command_events.cc +++ b/src/command_events.cc @@ -327,6 +327,7 @@ directory_watch_added(const torrent::Object::list_type& args) { control->directory_events()->notify_on(path.c_str(), torrent::directory_events::flag_on_added | torrent::directory_events::flag_on_updated, tr1::bind(&call_watch_command, command, tr1::placeholders::_1)); + return torrent::Object(); } void From 27888e73bcef2cad1d42fcf2012d20b806df3e7b Mon Sep 17 00:00:00 2001 From: rakshasa Date: Mon, 23 Apr 2012 16:14:06 +0900 Subject: [PATCH 09/20] Changed to latest version. --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index c77f29e2..b9aa8830 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT(rtorrent, 0.8.9, jaris@ifi.uio.no) +AC_INIT(rtorrent, 0.9.2, jaris@ifi.uio.no) AC_DEFINE(API_VERSION, 6, api version) @@ -49,7 +49,7 @@ PKG_CHECK_MODULES(libcurl, libcurl >= 7.15.4, CXXFLAGS="$CXXFLAGS $libcurl_CFLAGS"; LIBS="$LIBS $libcurl_LIBS") -PKG_CHECK_MODULES(libtorrent, libtorrent >= 0.12.9, +PKG_CHECK_MODULES(libtorrent, libtorrent >= 0.13.2, CXXFLAGS="$CXXFLAGS $libtorrent_CFLAGS"; LIBS="$LIBS $libtorrent_LIBS") From f1ece0ae12577d13d974e1833e7cad17afaea173 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Tue, 1 May 2012 00:29:50 +0900 Subject: [PATCH 10/20] Wait for disowned http requests to finish to ensure stopped event gets sent to tracker on client shutdown. --- src/control.cc | 12 +++++++++++- src/control.h | 1 - 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/control.cc b/src/control.cc index 29603594..e1893883 100644 --- a/src/control.cc +++ b/src/control.cc @@ -44,6 +44,7 @@ #include "core/download_store.h" #include "core/view_manager.h" #include "core/dht_manager.h" +#include "core/http_queue.h" #include "display/canvas.h" #include "display/window.h" @@ -146,7 +147,16 @@ Control::cleanup_exception() { bool Control::is_shutdown_completed() { - return m_shutdownQuick && !worker_thread->is_active() && torrent::is_inactive(); + if (!m_shutdownQuick || worker_thread->is_active()) + return false; + + // Tracker requests can be disowned, so wait for these to + // finish. The edge case of torrent http downloads may delay + // shutdown. + if (!core()->http_stack()->empty() || !core()->http_queue()->empty()) + return false; + + return torrent::is_inactive(); } void diff --git a/src/control.h b/src/control.h index 29f3bcbd..681b6750 100644 --- a/src/control.h +++ b/src/control.h @@ -90,7 +90,6 @@ public: core::ViewManager* view_manager() { return m_viewManager; } core::DhtManager* dht_manager() { return m_dhtManager; } - ui::Root* ui() { return m_ui; } display::Manager* display() { return m_display; } input::Manager* input() { return m_input; } From 24f84214c867c3906a9b547cbb020e0bd7237766 Mon Sep 17 00:00:00 2001 From: Mike Valentine Date: Sat, 12 Apr 2014 14:06:22 -0400 Subject: [PATCH 11/20] Added config parameter network.http.ssl_verify_host to support certificates. Added config parameter network.http.ssl_verify_host to support certificates with a mismatched or empty CN. Default is 2 (verify name match). Use 1 to simply verify the presence of a name or 0 to allow for missing names. --- src/command_network.cc | 2 ++ src/core/curl_stack.cc | 4 +++- src/core/curl_stack.h | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/command_network.cc b/src/command_network.cc index e6cfd081..3e6cbe20 100644 --- a/src/command_network.cc +++ b/src/command_network.cc @@ -274,6 +274,8 @@ initialize_command_network() { CMD2_ANY_VALUE_V ("network.http.ssl_verify_peer.set", tr1::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, tr1::placeholders::_2)); CMD2_ANY ("network.http.dns_cache_timeout", tr1::bind(&core::CurlStack::dns_timeout, httpStack)); CMD2_ANY_VALUE_V ("network.http.dns_cache_timeout.set", tr1::bind(&core::CurlStack::set_dns_timeout, httpStack, tr1::placeholders::_2)); + CMD2_ANY ("network.http.ssl_verify_host", tr1::bind(&core::CurlStack::ssl_verify_host, httpStack)); + CMD2_ANY_VALUE_V ("network.http.ssl_verify_host.set", tr1::bind(&core::CurlStack::set_ssl_verify_host, httpStack, tr1::placeholders::_2)); CMD2_ANY ("network.send_buffer.size", tr1::bind(&torrent::ConnectionManager::send_buffer_size, cm)); CMD2_ANY_VALUE_V ("network.send_buffer.size.set", tr1::bind(&torrent::ConnectionManager::set_send_buffer_size, cm, tr1::placeholders::_2)); diff --git a/src/core/curl_stack.cc b/src/core/curl_stack.cc index f0e6e8ec..782512a0 100644 --- a/src/core/curl_stack.cc +++ b/src/core/curl_stack.cc @@ -52,7 +52,8 @@ CurlStack::CurlStack() : m_active(0), m_maxActive(32), m_ssl_verify_peer(true), - m_dns_timeout(60) { + m_dns_timeout(60), + m_ssl_verify_host(2) { m_taskTimeout.slot() = std::tr1::bind(&CurlStack::receive_timeout, this); @@ -167,6 +168,7 @@ CurlStack::add_get(CurlGet* get) { curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYPEER, (long)m_ssl_verify_peer); curl_easy_setopt(get->handle(), CURLOPT_DNS_CACHE_TIMEOUT, m_dns_timeout); + curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYHOST, m_ssl_verify_host); base_type::push_back(get); diff --git a/src/core/curl_stack.h b/src/core/curl_stack.h index d17f825c..0144b37b 100644 --- a/src/core/curl_stack.h +++ b/src/core/curl_stack.h @@ -106,6 +106,9 @@ class CurlStack : std::deque { long dns_timeout() const { return m_dns_timeout; } void set_dns_timeout(long timeout) { m_dns_timeout = timeout; } + long ssl_verify_host() const { return m_ssl_verify_host; } + void set_ssl_verify_host(long s) { m_ssl_verify_host = s; } + static void global_init(); static void global_cleanup(); @@ -140,6 +143,7 @@ class CurlStack : std::deque { bool m_ssl_verify_peer; long m_dns_timeout; + long m_ssl_verify_host; }; } From 8e69930cc4cf98f74a63f08e2f9e054756ddd032 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Thu, 15 May 2014 23:42:36 +0900 Subject: [PATCH 12/20] Changed thread name to included 'rtorrent'. --- src/thread_worker.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/thread_worker.h b/src/thread_worker.h index 088058bb..49414b89 100644 --- a/src/thread_worker.h +++ b/src/thread_worker.h @@ -53,7 +53,7 @@ public: ThreadWorker(); ~ThreadWorker(); - const char* name() const { return "worker_rtorrent"; } + const char* name() const { return "rtorrent scgi"; } virtual void init_thread(); From e4e73aeee9e584c959bea5680bc5830275a0b18b Mon Sep 17 00:00:00 2001 From: rakshasa Date: Fri, 16 May 2014 01:14:47 +0900 Subject: [PATCH 13/20] Set deprecated commands to be off by default. If needed use the '-D' option, however note that they will be removed permanently in the future. --- src/command_dynamic.cc | 2 +- src/main.cc | 26 ++++++++++++++------------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/command_dynamic.cc b/src/command_dynamic.cc index 7ec16fb4..6c600d09 100644 --- a/src/command_dynamic.cc +++ b/src/command_dynamic.cc @@ -438,7 +438,7 @@ cmd_catch(rpc::target_type target, const torrent::Object& args) { void initialize_command_dynamic() { - CMD2_VAR_BOOL ("method.use_deprecated", true); + CMD2_VAR_BOOL ("method.use_deprecated", false); CMD2_VAR_VALUE ("method.use_intermediate", 1); CMD2_ANY_LIST ("method.insert", tr1::bind(&system_method_insert, tr1::placeholders::_2)); diff --git a/src/main.cc b/src/main.cc index 5e826bb1..fa5a5bff 100644 --- a/src/main.cc +++ b/src/main.cc @@ -230,7 +230,7 @@ main(int argc, char** argv) { initialize_commands(); if (OptionParser::has_flag('D', argc, argv)) { - rpc::call_command_set_value("method.use_deprecated.set", false); + rpc::call_command_set_value("method.use_deprecated.set", true); lt_log_print(torrent::LOG_WARN, "Disabled deprecated commands."); } @@ -397,8 +397,20 @@ main(int argc, char** argv) { CMD2_REDIRECT_GENERIC("directory", "directory.default.set"); CMD2_REDIRECT_GENERIC("session", "session.path.set"); + CMD2_REDIRECT ("check_hash", "pieces.hash.on_completion.set"); + CMD2_REDIRECT ("key_layout", "keys.layout.set"); + CMD2_REDIRECT_GENERIC("to_gm_time", "convert.gm_time"); + CMD2_REDIRECT_GENERIC("to_gm_date", "convert.gm_date"); + CMD2_REDIRECT_GENERIC("to_time", "convert.time"); + CMD2_REDIRECT_GENERIC("to_date", "convert.date"); + CMD2_REDIRECT_GENERIC("to_elapsed_time", "convert.elapsed_time"); + CMD2_REDIRECT_GENERIC("to_kb", "convert.kb"); + CMD2_REDIRECT_GENERIC("to_mb", "convert.mb"); + CMD2_REDIRECT_GENERIC("to_xb", "convert.xb"); + CMD2_REDIRECT_GENERIC("to_throttle", "convert.throttle"); + // Deprecated commands. Don't use these anymore. if (rpc::call_command_value("method.use_intermediate") == 1) { @@ -634,7 +646,6 @@ main(int argc, char** argv) { CMD2_REDIRECT ("get_session_on_completion", "session.on_completion"); CMD2_REDIRECT_GENERIC("set_session_on_completion", "session.on_completion.set"); - CMD2_REDIRECT ("check_hash", "pieces.hash.on_completion.set"); CMD2_REDIRECT ("get_check_hash", "pieces.hash.on_completion"); CMD2_REDIRECT_GENERIC("set_check_hash", "pieces.hash.on_completion.set"); @@ -809,16 +820,6 @@ main(int argc, char** argv) { // Rename these to avoid conflicts with old style. CMD2_REDIRECT_GENERIC("d.multicall", "d.multicall2"); - CMD2_REDIRECT_GENERIC("to_gm_time", "convert.gm_time"); - CMD2_REDIRECT_GENERIC("to_gm_date", "convert.gm_date"); - CMD2_REDIRECT_GENERIC("to_time", "convert.time"); - CMD2_REDIRECT_GENERIC("to_date", "convert.date"); - CMD2_REDIRECT_GENERIC("to_elapsed_time", "convert.elapsed_time"); - CMD2_REDIRECT_GENERIC("to_kb", "convert.kb"); - CMD2_REDIRECT_GENERIC("to_mb", "convert.mb"); - CMD2_REDIRECT_GENERIC("to_xb", "convert.xb"); - CMD2_REDIRECT_GENERIC("to_throttle", "convert.throttle"); - CMD2_REDIRECT_GENERIC("execute_throw", "execute.throw"); CMD2_REDIRECT_GENERIC("execute_nothrow", "execute.nothrow"); CMD2_REDIRECT_GENERIC("execute_raw", "execute.raw"); @@ -1002,6 +1003,7 @@ print_help() { std::cout << "order. Use the up/down/left/right arrow keys to move between screens." << std::endl; std::cout << std::endl; std::cout << "Usage: rtorrent [OPTIONS]... [FILE]... [URL]..." << std::endl; + std::cout << " -D Enable deprecated commands" << std::endl; std::cout << " -h Display this very helpful text" << std::endl; std::cout << " -n Don't try to load ~/.rtorrent.rc on startup" << std::endl; std::cout << " -b Bind the listening socket to this IP" << std::endl; From 5acfd592f08375cfde68421fd5ed5fe61e6cb203 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Tue, 20 May 2014 17:55:12 +0900 Subject: [PATCH 14/20] Added sed script for converting gui's to the new 0.9 commands. --- doc/scripts/update_commands_0.9.sed | 576 ++++++++++++++++++++++++++++ 1 file changed, 576 insertions(+) create mode 100644 doc/scripts/update_commands_0.9.sed diff --git a/doc/scripts/update_commands_0.9.sed b/doc/scripts/update_commands_0.9.sed new file mode 100644 index 00000000..15bc49b4 --- /dev/null +++ b/doc/scripts/update_commands_0.9.sed @@ -0,0 +1,576 @@ +s/'d\.multicall'/'d\.multicall2'/g +s/'d\.get_hash'/'d\.hash'/g +s/'d\.get_local_id'/'d\.local_id'/g +s/'d\.get_local_id_html'/'d\.local_id_html'/g +s/'d\.get_bitfield'/'d\.bitfield'/g +s/'d\.get_base_path'/'d\.base_path'/g +s/'d\.get_base_filename'/'d\.base_filename'/g +s/'d\.get_name'/'d\.name'/g +s/'d\.get_creation_date'/'d\.creation_date'/g +s/'d\.get_peer_exchange'/'d\.peer_exchange'/g +s/'d\.get_up_rate'/'d\.up\.rate'/g +s/'d\.get_up_total'/'d\.up\.total'/g +s/'d\.get_down_rate'/'d\.down\.rate'/g +s/'d\.get_down_total'/'d\.down\.total'/g +s/'d\.get_skip_rate'/'d\.skip\.rate'/g +s/'d\.get_skip_total'/'d\.skip\.total'/g +s/'d\.get_bytes_done'/'d\.bytes_done'/g +s/'d\.get_chunk_size'/'d\.chunk_size'/g +s/'d\.get_chunks_hashed'/'d\.chunks_hashed'/g +s/'d\.get_complete'/'d\.complete'/g +s/'d\.get_completed_bytes'/'d\.completed_bytes'/g +s/'d\.get_completed_chunks'/'d\.completed_chunks'/g +s/'d\.get_connection_current'/'d\.connection_current'/g +s/'d\.get_connection_leech'/'d\.connection_leech'/g +s/'d\.get_connection_seed'/'d\.connection_seed'/g +s/'d\.get_custom'/'d\.custom'/g +s/'d\.get_custom1'/'d\.custom1'/g +s/'d\.get_custom2'/'d\.custom2'/g +s/'d\.get_custom3'/'d\.custom3'/g +s/'d\.get_custom4'/'d\.custom4'/g +s/'d\.get_custom5'/'d\.custom5'/g +s/'d\.get_custom_throw'/'d\.custom_throw'/g +s/'d\.get_directory'/'d\.directory'/g +s/'d\.get_directory_base'/'d\.directory_base'/g +s/'d\.get_free_diskspace'/'d\.free_diskspace'/g +s/'d\.get_hashing'/'d\.hashing'/g +s/'d\.get_hashing_failed'/'d\.hashing_failed'/g +s/'d\.get_ignore_commands'/'d\.ignore_commands'/g +s/'d\.get_left_bytes'/'d\.left_bytes'/g +s/'d\.get_loaded_file'/'d\.loaded_file'/g +s/'d\.get_max_file_size'/'d\.max_file_size'/g +s/'d\.get_max_size_pex'/'d\.max_size_pex'/g +s/'d\.get_message'/'d\.message'/g +s/'d\.get_mode'/'d\.mode'/g +s/'d\.get_peers_accounted'/'d\.peers_accounted'/g +s/'d\.get_peers_complete'/'d\.peers_complete'/g +s/'d\.get_peers_connected'/'d\.peers_connected'/g +s/'d\.get_peers_max'/'d\.peers_max'/g +s/'d\.get_peers_min'/'d\.peers_min'/g +s/'d\.get_peers_not_connected'/'d\.peers_not_connected'/g +s/'d\.get_priority'/'d\.priority'/g +s/'d\.get_priority_str'/'d\.priority_str'/g +s/'d\.get_ratio'/'d\.ratio'/g +s/'d\.get_size_bytes'/'d\.size_bytes'/g +s/'d\.get_size_chunks'/'d\.size_chunks'/g +s/'d\.get_size_files'/'d\.size_files'/g +s/'d\.get_size_pex'/'d\.size_pex'/g +s/'d\.get_state'/'d\.state'/g +s/'d\.get_state_changed'/'d\.state_changed'/g +s/'d\.get_state_counter'/'d\.state_counter'/g +s/'d\.get_throttle_name'/'d\.throttle_name'/g +s/'d\.get_tied_to_file'/'d\.tied_to_file'/g +s/'d\.get_tracker_focus'/'d\.tracker_focus'/g +s/'d\.get_tracker_numwant'/'d\.tracker_numwant'/g +s/'d\.get_tracker_size'/'d\.tracker_size'/g +s/'d\.get_uploads_max'/'d\.uploads_max'/g +s/'d\.set_connection_current'/'d\.connection_current\.set'/g +s/'d\.set_custom'/'d\.custom\.set'/g +s/'d\.set_custom1'/'d\.custom1\.set'/g +s/'d\.set_custom2'/'d\.custom2\.set'/g +s/'d\.set_custom3'/'d\.custom3\.set'/g +s/'d\.set_custom4'/'d\.custom4\.set'/g +s/'d\.set_custom5'/'d\.custom5\.set'/g +s/'d\.set_directory'/'d\.directory\.set'/g +s/'d\.set_directory_base'/'d\.directory_base\.set'/g +s/'d\.set_hashing_failed'/'d\.hashing_failed\.set'/g +s/'d\.set_ignore_commands'/'d\.ignore_commands\.set'/g +s/'d\.set_max_file_size'/'d\.max_file_size\.set'/g +s/'d\.set_message'/'d\.message\.set'/g +s/'d\.set_peers_max'/'d\.peers_max\.set'/g +s/'d\.set_peers_min'/'d\.peers_min\.set'/g +s/'d\.set_priority'/'d\.priority\.set'/g +s/'d\.set_throttle_name'/'d\.throttle_name\.set'/g +s/'d\.set_tied_to_file'/'d\.tied_to_file\.set'/g +s/'d\.set_tracker_numwant'/'d\.tracker_numwant\.set'/g +s/'d\.set_uploads_max'/'d\.uploads_max\.set'/g +s/'create_link'/'d\.create_link'/g +s/'delete_link'/'d\.delete_link'/g +s/'delete_tied'/'d\.delete_tied'/g +s/'t\.get_group'/'t\.group'/g +s/'t\.get_id'/'t\.id'/g +s/'t\.get_min_interval'/'t\.min_interval'/g +s/'t\.get_normal_interval'/'t\.normal_interval'/g +s/'t\.get_scrape_complete'/'t\.scrape_complete'/g +s/'t\.get_scrape_downloaded'/'t\.scrape_downloaded'/g +s/'t\.get_scrape_incomplete'/'t\.scrape_incomplete'/g +s/'t\.get_scrape_time_last'/'t\.scrape_time_last'/g +s/'t\.get_type'/'t\.type'/g +s/'t\.get_url'/'t\.url'/g +s/'t\.set_enabled'/'t\.is_enabled\.set'/g +s/'f\.get_completed_chunks'/'f\.completed_chunks'/g +s/'f\.get_frozen_path'/'f\.frozen_path'/g +s/'f\.get_last_touched'/'f\.last_touched'/g +s/'f\.get_match_depth_next'/'f\.match_depth_next'/g +s/'f\.get_match_depth_prev'/'f\.match_depth_prev'/g +s/'f\.get_offset'/'f\.offset'/g +s/'f\.get_path'/'f\.path'/g +s/'f\.get_path_components'/'f\.path_components'/g +s/'f\.get_path_depth'/'f\.path_depth'/g +s/'f\.get_priority'/'f\.priority'/g +s/'f\.get_range_first'/'f\.range_first'/g +s/'f\.get_range_second'/'f\.range_second'/g +s/'f\.get_size_bytes'/'f\.size_bytes'/g +s/'f\.get_size_chunks'/'f\.size_chunks'/g +s/'f\.set_priority'/'f\.priority\.set'/g +s/'fi\.get_filename_last'/'fi\.filename_last'/g +s/'p\.get_address'/'p\.address'/g +s/'p\.get_client_version'/'p\.client_version'/g +s/'p\.get_completed_percent'/'p\.completed_percent'/g +s/'p\.get_down_rate'/'p\.down_rate'/g +s/'p\.get_down_total'/'p\.down_total'/g +s/'p\.get_id'/'p\.id'/g +s/'p\.get_id_html'/'p\.id_html'/g +s/'p\.get_options_str'/'p\.options_str'/g +s/'p\.get_peer_rate'/'p\.peer_rate'/g +s/'p\.get_peer_total'/'p\.peer_total'/g +s/'p\.get_port'/'p\.port'/g +s/'p\.get_up_rate'/'p\.up_rate'/g +s/'p\.get_up_total'/'p\.up_total'/g +s/'system\.method\.insert'/'method\.insert'/g +s/'system\.method\.erase'/'method\.erase'/g +s/'system\.method\.get'/'method\.get'/g +s/'system\.method\.set'/'method\.set'/g +s/'system\.method\.list_keys'/'method\.list_keys'/g +s/'system\.method\.has_key'/'method\.has_key'/g +s/'system\.method\.set_key'/'method\.set_key'/g +s/'get_directory'/'directory\.default'/g +s/'set_directory'/'directory\.default\.set'/g +s/'get_session'/'session\.path'/g +s/'set_session'/'session\.path\.set'/g +s/'session_save'/'session\.save'/g +s/'get_name'/'session\.name'/g +s/'set_name'/'session\.name\.set'/g +s/'system\.file_allocate'/'system\.file\.allocate'/g +s/'system\.file_allocate\.set'/'system\.file\.allocate\.set'/g +s/'get_max_file_size'/'system\.file\.max_size'/g +s/'set_max_file_size'/'system\.file\.max_size\.set'/g +s/'get_split_file_size'/'system\.file\.split_size'/g +s/'set_split_file_size'/'system\.file\.split_size\.set'/g +s/'get_split_suffix'/'system\.file\.split_suffix'/g +s/'set_split_suffix'/'system\.file\.split_suffix\.set'/g +s/'get_timeout_sync'/'pieces\.sync\.timeout'/g +s/'set_timeout_sync'/'pieces\.sync\.timeout\.set'/g +s/'get_timeout_safe_sync'/'pieces\.sync\.timeout_safe'/g +s/'set_timeout_safe_sync'/'pieces\.sync\.timeout_safe\.set'/g +s/'get_preload_type'/'pieces\.preload\.type'/g +s/'get_preload_min_size'/'pieces\.preload\.min_size'/g +s/'get_preload_required_rate'/'pieces\.preload\.min_rate'/g +s/'set_preload_type'/'pieces\.preload\.type\.set'/g +s/'set_preload_min_size'/'pieces\.preload\.min_size\.set'/g +s/'set_preload_required_rate'/'pieces\.preload\.min_rate\.set'/g +s/'get_stats_preloaded'/'pieces\.stats_preloaded'/g +s/'get_stats_not_preloaded'/'pieces\.stats_not_preloaded'/g +s/'get_safe_sync'/'pieces\.sync\.always_safe'/g +s/'set_safe_sync'/'pieces\.sync\.always_safe\.set'/g +s/'get_memory_usage'/'pieces\.memory\.current'/g +s/'get_max_memory_usage'/'pieces\.memory\.max'/g +s/'set_max_memory_usage'/'pieces\.memory\.max\.set'/g +s/'load'/'load\.normal'/g +s/'load_verbose'/'load\.verbose'/g +s/'load_start'/'load\.start'/g +s/'load_start_verbose'/'load\.start_verbose'/g +s/'load_raw'/'load\.raw'/g +s/'load_raw_start'/'load\.raw_start'/g +s/'load_raw_verbose'/'load\.raw_verbose'/g +s/'get_connection_leech'/'protocol\.connection\.leech'/g +s/'get_connection_seed'/'protocol\.connection\.seed'/g +s/'set_connection_leech'/'protocol\.connection\.leech\.set'/g +s/'set_connection_seed'/'protocol\.connection\.seed\.set'/g +s/'throttle_up'/'throttle\.up'/g +s/'throttle_down'/'throttle\.down'/g +s/'throttle_ip'/'throttle\.ip'/g +s/'get_throttle_up_max'/'throttle\.up\.max'/g +s/'get_throttle_up_rate'/'throttle\.up\.rate'/g +s/'get_throttle_down_max'/'throttle\.down\.max'/g +s/'get_throttle_down_rate'/'throttle\.down\.rate'/g +s/'set_min_peers'/'throttle\.min_peers\.normal\.set'/g +s/'set_max_peers'/'throttle\.max_peers\.normal\.set'/g +s/'set_min_peers_seed'/'throttle\.min_peers\.seed\.set'/g +s/'set_max_peers_seed'/'throttle\.max_peers\.seed\.set'/g +s/'set_max_uploads'/'throttle\.max_uploads\.set'/g +s/'set_max_uploads_div'/'throttle\.max_uploads\.div\.set'/g +s/'set_max_uploads_global'/'throttle\.max_uploads\.global\.set'/g +s/'set_max_downloads_div'/'throttle\.max_downloads\.div\.set'/g +s/'set_max_downloads_global'/'throttle\.max_downloads\.global\.set'/g +s/'get_min_peers'/'throttle\.min_peers\.normal'/g +s/'get_max_peers'/'throttle\.max_peers\.normal'/g +s/'get_min_peers_seed'/'throttle\.min_peers\.seed'/g +s/'get_max_peers_seed'/'throttle\.max_peers\.seed'/g +s/'get_max_uploads'/'throttle\.max_uploads'/g +s/'get_max_uploads_div'/'throttle\.max_uploads\.div'/g +s/'get_max_uploads_global'/'throttle\.max_uploads\.global'/g +s/'get_max_downloads_div'/'throttle\.max_downloads\.div'/g +s/'get_max_downloads_global'/'throttle\.max_downloads\.global'/g +s/'get_up_rate'/'throttle\.global_up\.rate'/g +s/'get_up_total'/'throttle\.global_up\.total'/g +s/'get_upload_rate'/'throttle\.global_up\.max_rate'/g +s/'set_upload_rate'/'throttle\.global_up\.max_rate\.set'/g +s/'get_down_rate'/'throttle\.global_down\.rate'/g +s/'get_down_total'/'throttle\.global_down\.total'/g +s/'get_download_rate'/'throttle\.global_down\.max_rate'/g +s/'set_download_rate'/'throttle\.global_down\.max_rate\.set'/g +s/'get_send_buffer_size'/'network\.send_buffer\.size'/g +s/'set_send_buffer_size'/'network\.send_buffer\.size\.set'/g +s/'get_receive_buffer_size'/'network\.receive_buffer\.size'/g +s/'set_receive_buffer_size'/'network\.receive_buffer\.size\.set'/g +s/'set_bind'/'network\.bind_address\.set'/g +s/'get_bind'/'network\.bind_address'/g +s/'set_ip'/'network\.local_address\.set'/g +s/'get_ip'/'network\.local_address'/g +s/'get_port_range'/'network\.port_range'/g +s/'set_port_range'/'network\.port_range\.set'/g +s/'get_port_random'/'network\.port_random'/g +s/'set_port_random'/'network\.port_random\.set'/g +s/'port_open'/'network\.port_open\.set'/g +s/'get_port_open'/'network\.port_open'/g +s/'set_port_open'/'network\.port_open\.set'/g +s/'set_proxy_address'/'network\.proxy_address\.set'/g +s/'get_proxy_address'/'network\.proxy_address'/g +s/'scgi_port'/'network\.scgi\.open_port'/g +s/'scgi_local'/'network\.scgi\.open_local'/g +s/'scgi_dont_route'/'network\.scgi\.dont_route\.set'/g +s/'set_scgi_dont_route'/'network\.scgi\.dont_route\.set'/g +s/'get_scgi_dont_route'/'network\.scgi\.dont_route'/g +s/'get_max_open_sockets'/'network\.max_open_sockets'/g +s/'get_max_open_files'/'network\.max_open_files'/g +s/'set_max_open_files'/'network\.max_open_files\.set'/g +s/'xmlrpc_dialect'/'network\.xmlrpc\.dialect\.set'/g +s/'set_xmlrpc_dialect'/'network\.xmlrpc\.dialect\.set'/g +s/'xmlrpc_size_limit'/'network\.xmlrpc\.size_limit\.set'/g +s/'get_xmlrpc_size_limit'/'network\.xmlrpc\.size_limit'/g +s/'set_xmlrpc_size_limit'/'network\.xmlrpc\.size_limit\.set'/g +s/'http_capath'/'network\.http\.capath\.set'/g +s/'get_http_capath'/'network\.http\.capath'/g +s/'set_http_capath'/'network\.http\.capath\.set'/g +s/'http_cacert'/'network\.http\.cacert\.set'/g +s/'get_http_cacert'/'network\.http\.cacert'/g +s/'set_http_cacert'/'network\.http\.cacert\.set'/g +s/'get_max_open_http'/'network\.http\.max_open'/g +s/'set_max_open_http'/'network\.http\.max_open\.set'/g +s/'http_proxy'/'network\.http\.proxy_address\.set'/g +s/'get_http_proxy'/'network\.http\.proxy_address'/g +s/'set_http_proxy'/'network\.http\.proxy_address\.set'/g +s/'peer_exchange'/'protocol\.pex\.set'/g +s/'get_peer_exchange'/'protocol\.pex'/g +s/'set_peer_exchange'/'protocol\.pex\.set'/g +s/'tracker_numwant'/'trackers\.numwant\.set'/g +s/'get_tracker_numwant'/'trackers\.numwant'/g +s/'set_tracker_numwant'/'trackers\.numwant\.set'/g +s/'use_udp_trackers'/'trackers\.use_udp\.set'/g +s/'get_use_udp_trackers'/'trackers\.use_udp'/g +s/'set_use_udp_trackers'/'trackers\.use_udp\.set'/g +s/'dht_add_node'/'dht\.add_node'/g +s/'dht_statistics'/'dht\.statistics'/g +s/'get_dht_port'/'dht\.port'/g +s/'set_dht_port'/'dht\.port\.set'/g +s/'get_dht_throttle'/'dht\.throttle\.name'/g +s/'set_dht_throttle'/'dht\.throttle\.name\.set'/g +s/'get_session_lock'/'session\.use_lock'/g +s/'set_session_lock'/'session\.use_lock\.set'/g +s/'get_session_on_completion'/'session\.on_completion'/g +s/'set_session_on_completion'/'session\.on_completion\.set'/g +s/'get_check_hash'/'pieces\.hash\.on_completion'/g +s/'set_check_hash'/'pieces\.hash\.on_completion\.set'/g +s/'view_add'/'view\.add'/g +s/'view_filter'/'view\.filter'/g +s/'view_filter_on'/'view\.filter_on'/g +s/'view_list'/'view\.list'/g +s/'view_set'/'view\.set'/g +s/'view_sort'/'view\.sort'/g +s/'view_sort_current'/'view\.sort_current'/g +s/'view_sort_new'/'view\.sort_new'/g +s/'execute_throw'/'execute\.throw'/g +s/'execute_nothrow'/'execute\.nothrow'/g +s/'execute_raw'/'execute\.raw'/g +s/'execute_raw_nothrow'/'execute\.raw_nothrow'/g +s/'execute_capture'/'execute\.capture'/g +s/'execute_capture_nothrow'/'execute\.capture_nothrow'/g +s/'d\.multicall=/'d\.multicall2=/g +s/'d\.get_hash=/'d\.hash=/g +s/'d\.get_local_id=/'d\.local_id=/g +s/'d\.get_local_id_html=/'d\.local_id_html=/g +s/'d\.get_bitfield=/'d\.bitfield=/g +s/'d\.get_base_path=/'d\.base_path=/g +s/'d\.get_base_filename=/'d\.base_filename=/g +s/'d\.get_name=/'d\.name=/g +s/'d\.get_creation_date=/'d\.creation_date=/g +s/'d\.get_peer_exchange=/'d\.peer_exchange=/g +s/'d\.get_up_rate=/'d\.up\.rate=/g +s/'d\.get_up_total=/'d\.up\.total=/g +s/'d\.get_down_rate=/'d\.down\.rate=/g +s/'d\.get_down_total=/'d\.down\.total=/g +s/'d\.get_skip_rate=/'d\.skip\.rate=/g +s/'d\.get_skip_total=/'d\.skip\.total=/g +s/'d\.get_bytes_done=/'d\.bytes_done=/g +s/'d\.get_chunk_size=/'d\.chunk_size=/g +s/'d\.get_chunks_hashed=/'d\.chunks_hashed=/g +s/'d\.get_complete=/'d\.complete=/g +s/'d\.get_completed_bytes=/'d\.completed_bytes=/g +s/'d\.get_completed_chunks=/'d\.completed_chunks=/g +s/'d\.get_connection_current=/'d\.connection_current=/g +s/'d\.get_connection_leech=/'d\.connection_leech=/g +s/'d\.get_connection_seed=/'d\.connection_seed=/g +s/'d\.get_custom=/'d\.custom=/g +s/'d\.get_custom1=/'d\.custom1=/g +s/'d\.get_custom2=/'d\.custom2=/g +s/'d\.get_custom3=/'d\.custom3=/g +s/'d\.get_custom4=/'d\.custom4=/g +s/'d\.get_custom5=/'d\.custom5=/g +s/'d\.get_custom_throw=/'d\.custom_throw=/g +s/'d\.get_directory=/'d\.directory=/g +s/'d\.get_directory_base=/'d\.directory_base=/g +s/'d\.get_free_diskspace=/'d\.free_diskspace=/g +s/'d\.get_hashing=/'d\.hashing=/g +s/'d\.get_hashing_failed=/'d\.hashing_failed=/g +s/'d\.get_ignore_commands=/'d\.ignore_commands=/g +s/'d\.get_left_bytes=/'d\.left_bytes=/g +s/'d\.get_loaded_file=/'d\.loaded_file=/g +s/'d\.get_max_file_size=/'d\.max_file_size=/g +s/'d\.get_max_size_pex=/'d\.max_size_pex=/g +s/'d\.get_message=/'d\.message=/g +s/'d\.get_mode=/'d\.mode=/g +s/'d\.get_peers_accounted=/'d\.peers_accounted=/g +s/'d\.get_peers_complete=/'d\.peers_complete=/g +s/'d\.get_peers_connected=/'d\.peers_connected=/g +s/'d\.get_peers_max=/'d\.peers_max=/g +s/'d\.get_peers_min=/'d\.peers_min=/g +s/'d\.get_peers_not_connected=/'d\.peers_not_connected=/g +s/'d\.get_priority=/'d\.priority=/g +s/'d\.get_priority_str=/'d\.priority_str=/g +s/'d\.get_ratio=/'d\.ratio=/g +s/'d\.get_size_bytes=/'d\.size_bytes=/g +s/'d\.get_size_chunks=/'d\.size_chunks=/g +s/'d\.get_size_files=/'d\.size_files=/g +s/'d\.get_size_pex=/'d\.size_pex=/g +s/'d\.get_state=/'d\.state=/g +s/'d\.get_state_changed=/'d\.state_changed=/g +s/'d\.get_state_counter=/'d\.state_counter=/g +s/'d\.get_throttle_name=/'d\.throttle_name=/g +s/'d\.get_tied_to_file=/'d\.tied_to_file=/g +s/'d\.get_tracker_focus=/'d\.tracker_focus=/g +s/'d\.get_tracker_numwant=/'d\.tracker_numwant=/g +s/'d\.get_tracker_size=/'d\.tracker_size=/g +s/'d\.get_uploads_max=/'d\.uploads_max=/g +s/'d\.set_connection_current=/'d\.connection_current\.set=/g +s/'d\.set_custom=/'d\.custom\.set=/g +s/'d\.set_custom1=/'d\.custom1\.set=/g +s/'d\.set_custom2=/'d\.custom2\.set=/g +s/'d\.set_custom3=/'d\.custom3\.set=/g +s/'d\.set_custom4=/'d\.custom4\.set=/g +s/'d\.set_custom5=/'d\.custom5\.set=/g +s/'d\.set_directory=/'d\.directory\.set=/g +s/'d\.set_directory_base=/'d\.directory_base\.set=/g +s/'d\.set_hashing_failed=/'d\.hashing_failed\.set=/g +s/'d\.set_ignore_commands=/'d\.ignore_commands\.set=/g +s/'d\.set_max_file_size=/'d\.max_file_size\.set=/g +s/'d\.set_message=/'d\.message\.set=/g +s/'d\.set_peers_max=/'d\.peers_max\.set=/g +s/'d\.set_peers_min=/'d\.peers_min\.set=/g +s/'d\.set_priority=/'d\.priority\.set=/g +s/'d\.set_throttle_name=/'d\.throttle_name\.set=/g +s/'d\.set_tied_to_file=/'d\.tied_to_file\.set=/g +s/'d\.set_tracker_numwant=/'d\.tracker_numwant\.set=/g +s/'d\.set_uploads_max=/'d\.uploads_max\.set=/g +s/'create_link=/'d\.create_link=/g +s/'delete_link=/'d\.delete_link=/g +s/'delete_tied=/'d\.delete_tied=/g +s/'t\.get_group=/'t\.group=/g +s/'t\.get_id=/'t\.id=/g +s/'t\.get_min_interval=/'t\.min_interval=/g +s/'t\.get_normal_interval=/'t\.normal_interval=/g +s/'t\.get_scrape_complete=/'t\.scrape_complete=/g +s/'t\.get_scrape_downloaded=/'t\.scrape_downloaded=/g +s/'t\.get_scrape_incomplete=/'t\.scrape_incomplete=/g +s/'t\.get_scrape_time_last=/'t\.scrape_time_last=/g +s/'t\.get_type=/'t\.type=/g +s/'t\.get_url=/'t\.url=/g +s/'t\.set_enabled=/'t\.is_enabled\.set=/g +s/'f\.get_completed_chunks=/'f\.completed_chunks=/g +s/'f\.get_frozen_path=/'f\.frozen_path=/g +s/'f\.get_last_touched=/'f\.last_touched=/g +s/'f\.get_match_depth_next=/'f\.match_depth_next=/g +s/'f\.get_match_depth_prev=/'f\.match_depth_prev=/g +s/'f\.get_offset=/'f\.offset=/g +s/'f\.get_path=/'f\.path=/g +s/'f\.get_path_components=/'f\.path_components=/g +s/'f\.get_path_depth=/'f\.path_depth=/g +s/'f\.get_priority=/'f\.priority=/g +s/'f\.get_range_first=/'f\.range_first=/g +s/'f\.get_range_second=/'f\.range_second=/g +s/'f\.get_size_bytes=/'f\.size_bytes=/g +s/'f\.get_size_chunks=/'f\.size_chunks=/g +s/'f\.set_priority=/'f\.priority\.set=/g +s/'fi\.get_filename_last=/'fi\.filename_last=/g +s/'p\.get_address=/'p\.address=/g +s/'p\.get_client_version=/'p\.client_version=/g +s/'p\.get_completed_percent=/'p\.completed_percent=/g +s/'p\.get_down_rate=/'p\.down_rate=/g +s/'p\.get_down_total=/'p\.down_total=/g +s/'p\.get_id=/'p\.id=/g +s/'p\.get_id_html=/'p\.id_html=/g +s/'p\.get_options_str=/'p\.options_str=/g +s/'p\.get_peer_rate=/'p\.peer_rate=/g +s/'p\.get_peer_total=/'p\.peer_total=/g +s/'p\.get_port=/'p\.port=/g +s/'p\.get_up_rate=/'p\.up_rate=/g +s/'p\.get_up_total=/'p\.up_total=/g +s/'system\.method\.insert=/'method\.insert=/g +s/'system\.method\.erase=/'method\.erase=/g +s/'system\.method\.get=/'method\.get=/g +s/'system\.method\.set=/'method\.set=/g +s/'system\.method\.list_keys=/'method\.list_keys=/g +s/'system\.method\.has_key=/'method\.has_key=/g +s/'system\.method\.set_key=/'method\.set_key=/g +s/'get_directory=/'directory\.default=/g +s/'set_directory=/'directory\.default\.set=/g +s/'get_session=/'session\.path=/g +s/'set_session=/'session\.path\.set=/g +s/'session_save=/'session\.save=/g +s/'get_name=/'session\.name=/g +s/'set_name=/'session\.name\.set=/g +s/'system\.file_allocate=/'system\.file\.allocate=/g +s/'system\.file_allocate\.set=/'system\.file\.allocate\.set=/g +s/'get_max_file_size=/'system\.file\.max_size=/g +s/'set_max_file_size=/'system\.file\.max_size\.set=/g +s/'get_split_file_size=/'system\.file\.split_size=/g +s/'set_split_file_size=/'system\.file\.split_size\.set=/g +s/'get_split_suffix=/'system\.file\.split_suffix=/g +s/'set_split_suffix=/'system\.file\.split_suffix\.set=/g +s/'get_timeout_sync=/'pieces\.sync\.timeout=/g +s/'set_timeout_sync=/'pieces\.sync\.timeout\.set=/g +s/'get_timeout_safe_sync=/'pieces\.sync\.timeout_safe=/g +s/'set_timeout_safe_sync=/'pieces\.sync\.timeout_safe\.set=/g +s/'get_preload_type=/'pieces\.preload\.type=/g +s/'get_preload_min_size=/'pieces\.preload\.min_size=/g +s/'get_preload_required_rate=/'pieces\.preload\.min_rate=/g +s/'set_preload_type=/'pieces\.preload\.type\.set=/g +s/'set_preload_min_size=/'pieces\.preload\.min_size\.set=/g +s/'set_preload_required_rate=/'pieces\.preload\.min_rate\.set=/g +s/'get_stats_preloaded=/'pieces\.stats_preloaded=/g +s/'get_stats_not_preloaded=/'pieces\.stats_not_preloaded=/g +s/'get_safe_sync=/'pieces\.sync\.always_safe=/g +s/'set_safe_sync=/'pieces\.sync\.always_safe\.set=/g +s/'get_memory_usage=/'pieces\.memory\.current=/g +s/'get_max_memory_usage=/'pieces\.memory\.max=/g +s/'set_max_memory_usage=/'pieces\.memory\.max\.set=/g +s/'load=/'load\.normal=/g +s/'load_verbose=/'load\.verbose=/g +s/'load_start=/'load\.start=/g +s/'load_start_verbose=/'load\.start_verbose=/g +s/'load_raw=/'load\.raw=/g +s/'load_raw_start=/'load\.raw_start=/g +s/'load_raw_verbose=/'load\.raw_verbose=/g +s/'get_connection_leech=/'protocol\.connection\.leech=/g +s/'get_connection_seed=/'protocol\.connection\.seed=/g +s/'set_connection_leech=/'protocol\.connection\.leech\.set=/g +s/'set_connection_seed=/'protocol\.connection\.seed\.set=/g +s/'throttle_up=/'throttle\.up=/g +s/'throttle_down=/'throttle\.down=/g +s/'throttle_ip=/'throttle\.ip=/g +s/'get_throttle_up_max=/'throttle\.up\.max=/g +s/'get_throttle_up_rate=/'throttle\.up\.rate=/g +s/'get_throttle_down_max=/'throttle\.down\.max=/g +s/'get_throttle_down_rate=/'throttle\.down\.rate=/g +s/'set_min_peers=/'throttle\.min_peers\.normal\.set=/g +s/'set_max_peers=/'throttle\.max_peers\.normal\.set=/g +s/'set_min_peers_seed=/'throttle\.min_peers\.seed\.set=/g +s/'set_max_peers_seed=/'throttle\.max_peers\.seed\.set=/g +s/'set_max_uploads=/'throttle\.max_uploads\.set=/g +s/'set_max_uploads_div=/'throttle\.max_uploads\.div\.set=/g +s/'set_max_uploads_global=/'throttle\.max_uploads\.global\.set=/g +s/'set_max_downloads_div=/'throttle\.max_downloads\.div\.set=/g +s/'set_max_downloads_global=/'throttle\.max_downloads\.global\.set=/g +s/'get_min_peers=/'throttle\.min_peers\.normal=/g +s/'get_max_peers=/'throttle\.max_peers\.normal=/g +s/'get_min_peers_seed=/'throttle\.min_peers\.seed=/g +s/'get_max_peers_seed=/'throttle\.max_peers\.seed=/g +s/'get_max_uploads=/'throttle\.max_uploads=/g +s/'get_max_uploads_div=/'throttle\.max_uploads\.div=/g +s/'get_max_uploads_global=/'throttle\.max_uploads\.global=/g +s/'get_max_downloads_div=/'throttle\.max_downloads\.div=/g +s/'get_max_downloads_global=/'throttle\.max_downloads\.global=/g +s/'get_up_rate=/'throttle\.global_up\.rate=/g +s/'get_up_total=/'throttle\.global_up\.total=/g +s/'get_upload_rate=/'throttle\.global_up\.max_rate=/g +s/'set_upload_rate=/'throttle\.global_up\.max_rate\.set=/g +s/'get_down_rate=/'throttle\.global_down\.rate=/g +s/'get_down_total=/'throttle\.global_down\.total=/g +s/'get_download_rate=/'throttle\.global_down\.max_rate=/g +s/'set_download_rate=/'throttle\.global_down\.max_rate\.set=/g +s/'get_send_buffer_size=/'network\.send_buffer\.size=/g +s/'set_send_buffer_size=/'network\.send_buffer\.size\.set=/g +s/'get_receive_buffer_size=/'network\.receive_buffer\.size=/g +s/'set_receive_buffer_size=/'network\.receive_buffer\.size\.set=/g +s/'set_bind=/'network\.bind_address\.set=/g +s/'get_bind=/'network\.bind_address=/g +s/'set_ip=/'network\.local_address\.set=/g +s/'get_ip=/'network\.local_address=/g +s/'get_port_range=/'network\.port_range=/g +s/'set_port_range=/'network\.port_range\.set=/g +s/'get_port_random=/'network\.port_random=/g +s/'set_port_random=/'network\.port_random\.set=/g +s/'port_open=/'network\.port_open\.set=/g +s/'get_port_open=/'network\.port_open=/g +s/'set_port_open=/'network\.port_open\.set=/g +s/'set_proxy_address=/'network\.proxy_address\.set=/g +s/'get_proxy_address=/'network\.proxy_address=/g +s/'scgi_port=/'network\.scgi\.open_port=/g +s/'scgi_local=/'network\.scgi\.open_local=/g +s/'scgi_dont_route=/'network\.scgi\.dont_route\.set=/g +s/'set_scgi_dont_route=/'network\.scgi\.dont_route\.set=/g +s/'get_scgi_dont_route=/'network\.scgi\.dont_route=/g +s/'get_max_open_sockets=/'network\.max_open_sockets=/g +s/'get_max_open_files=/'network\.max_open_files=/g +s/'set_max_open_files=/'network\.max_open_files\.set=/g +s/'xmlrpc_dialect=/'network\.xmlrpc\.dialect\.set=/g +s/'set_xmlrpc_dialect=/'network\.xmlrpc\.dialect\.set=/g +s/'xmlrpc_size_limit=/'network\.xmlrpc\.size_limit\.set=/g +s/'get_xmlrpc_size_limit=/'network\.xmlrpc\.size_limit=/g +s/'set_xmlrpc_size_limit=/'network\.xmlrpc\.size_limit\.set=/g +s/'http_capath=/'network\.http\.capath\.set=/g +s/'get_http_capath=/'network\.http\.capath=/g +s/'set_http_capath=/'network\.http\.capath\.set=/g +s/'http_cacert=/'network\.http\.cacert\.set=/g +s/'get_http_cacert=/'network\.http\.cacert=/g +s/'set_http_cacert=/'network\.http\.cacert\.set=/g +s/'get_max_open_http=/'network\.http\.max_open=/g +s/'set_max_open_http=/'network\.http\.max_open\.set=/g +s/'http_proxy=/'network\.http\.proxy_address\.set=/g +s/'get_http_proxy=/'network\.http\.proxy_address=/g +s/'set_http_proxy=/'network\.http\.proxy_address\.set=/g +s/'peer_exchange=/'protocol\.pex\.set=/g +s/'get_peer_exchange=/'protocol\.pex=/g +s/'set_peer_exchange=/'protocol\.pex\.set=/g +s/'tracker_numwant=/'trackers\.numwant\.set=/g +s/'get_tracker_numwant=/'trackers\.numwant=/g +s/'set_tracker_numwant=/'trackers\.numwant\.set=/g +s/'use_udp_trackers=/'trackers\.use_udp\.set=/g +s/'get_use_udp_trackers=/'trackers\.use_udp=/g +s/'set_use_udp_trackers=/'trackers\.use_udp\.set=/g +s/'dht_add_node=/'dht\.add_node=/g +s/'dht_statistics=/'dht\.statistics=/g +s/'get_dht_port=/'dht\.port=/g +s/'set_dht_port=/'dht\.port\.set=/g +s/'get_dht_throttle=/'dht\.throttle\.name=/g +s/'set_dht_throttle=/'dht\.throttle\.name\.set=/g +s/'get_session_lock=/'session\.use_lock=/g +s/'set_session_lock=/'session\.use_lock\.set=/g +s/'get_session_on_completion=/'session\.on_completion=/g +s/'set_session_on_completion=/'session\.on_completion\.set=/g +s/'get_check_hash=/'pieces\.hash\.on_completion=/g +s/'set_check_hash=/'pieces\.hash\.on_completion\.set=/g +s/'view_add=/'view\.add=/g +s/'view_filter=/'view\.filter=/g +s/'view_filter_on=/'view\.filter_on=/g +s/'view_list=/'view\.list=/g +s/'view_set=/'view\.set=/g +s/'view_sort=/'view\.sort=/g +s/'view_sort_current=/'view\.sort_current=/g +s/'view_sort_new=/'view\.sort_new=/g +s/'execute_throw=/'execute\.throw=/g +s/'execute_nothrow=/'execute\.nothrow=/g +s/'execute_raw=/'execute\.raw=/g +s/'execute_raw_nothrow=/'execute\.raw_nothrow=/g +s/'execute_capture=/'execute\.capture=/g +s/'execute_capture_nothrow=/'execute\.capture_nothrow=/g From 4ac807870e1782a3ec589076c799cad50bd33977 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Wed, 28 May 2014 17:04:06 +0900 Subject: [PATCH 15/20] Un-deprecate scgi_port/local. --- src/main.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main.cc b/src/main.cc index fa5a5bff..cda0bcdc 100644 --- a/src/main.cc +++ b/src/main.cc @@ -394,6 +394,9 @@ main(int argc, char** argv) { CMD2_REDIRECT ("port_random", "network.port_random.set"); CMD2_REDIRECT ("proxy_address", "network.proxy_address.set"); + CMD2_REDIRECT ("scgi_port", "network.scgi.open_port"); + CMD2_REDIRECT ("scgi_local", "network.scgi.open_local"); + CMD2_REDIRECT_GENERIC("directory", "directory.default.set"); CMD2_REDIRECT_GENERIC("session", "session.path.set"); @@ -568,10 +571,6 @@ main(int argc, char** argv) { CMD2_REDIRECT_GENERIC("set_proxy_address", "network.proxy_address.set"); CMD2_REDIRECT ("get_proxy_address", "network.proxy_address"); - CMD2_REDIRECT ("scgi_port", "network.scgi.open_port"); - CMD2_REDIRECT ("scgi_local", "network.scgi.open_local"); - - CMD2_REDIRECT ("scgi_dont_route", "network.scgi.dont_route.set"); CMD2_REDIRECT_GENERIC("set_scgi_dont_route", "network.scgi.dont_route.set"); CMD2_REDIRECT ("get_scgi_dont_route", "network.scgi.dont_route"); From bfd1a8da8c239d42ff4b0a49777f3a3c742960ba Mon Sep 17 00:00:00 2001 From: rakshasa Date: Sat, 31 May 2014 03:18:26 +0900 Subject: [PATCH 16/20] Updated migration script to handle rutorrent. --- doc/scripts/update_commands_0.9.sed | 618 +++++++++++++++++++++++++++- 1 file changed, 611 insertions(+), 7 deletions(-) diff --git a/doc/scripts/update_commands_0.9.sed b/doc/scripts/update_commands_0.9.sed index 15bc49b4..03d3e092 100644 --- a/doc/scripts/update_commands_0.9.sed +++ b/doc/scripts/update_commands_0.9.sed @@ -1,3 +1,38 @@ +s/"execute_capture",array(/"execute.capture",array("",/g +s/"execute_capture", array(/"execute.capture", array("",/g + +s/"execute.nothrow", array("sh"/"execute.nothrow", array("", "sh"/g + +s/"execute",array(/"execute2",array("",/g +s/"execute", array(/"execute2", array("",/g + +s/"d.multicall",array(/"d.multicall2",array("", /g +s/"d.multicall", array(/"d.multicall2", array("", /g + +s/"d.multicall", "main"/"d.multicall2", array("", "main")/g + +s/var cmd = new rXMLRPCCommand("d.multicall");/var cmd = new rXMLRPCCommand("d.multicall2"); cmd.addParameter("string","");/g + +s/'load_raw' );/'load.raw' ); $cmd->addParameter("");/g +s/'load' );/'load.normal' ); $cmd->addParameter("");/g + +s/'system\.method\.insert',/'method.insert','',/g +s/'system\.method\.erase',/'method.erase','',/g +s/'system\.method\.get',/'method.get','',/g +s/'system\.method\.set',/'method.set','',/g +s/'system\.method\.list_keys',/'method.list_keys','',/g +s/'system\.method\.has_key',/'method.has_key','',/g +s/'system\.method\.set_key',/'method.set_key','',/g + +s/"system\.method\.insert"/"method.insert"/g +s/"system\.method\.erase"/"method.erase"/g +s/"system\.method\.get"/"method.get"/g +s/"system\.method\.set"/"method.set"/g +s/"system\.method\.list_keys"/"method.list_keys"/g +s/"system\.method\.has_key"/"method.has_key"/g +s/"system\.method\.set_key"/"method.set_key"/g + + s/'d\.multicall'/'d\.multicall2'/g s/'d\.get_hash'/'d\.hash'/g s/'d\.get_local_id'/'d\.local_id'/g @@ -127,13 +162,6 @@ s/'p\.get_peer_total'/'p\.peer_total'/g s/'p\.get_port'/'p\.port'/g s/'p\.get_up_rate'/'p\.up_rate'/g s/'p\.get_up_total'/'p\.up_total'/g -s/'system\.method\.insert'/'method\.insert'/g -s/'system\.method\.erase'/'method\.erase'/g -s/'system\.method\.get'/'method\.get'/g -s/'system\.method\.set'/'method\.set'/g -s/'system\.method\.list_keys'/'method\.list_keys'/g -s/'system\.method\.has_key'/'method\.has_key'/g -s/'system\.method\.set_key'/'method\.set_key'/g s/'get_directory'/'directory\.default'/g s/'set_directory'/'directory\.default\.set'/g s/'get_session'/'session\.path'/g @@ -286,6 +314,7 @@ s/'execute_raw'/'execute\.raw'/g s/'execute_raw_nothrow'/'execute\.raw_nothrow'/g s/'execute_capture'/'execute\.capture'/g s/'execute_capture_nothrow'/'execute\.capture_nothrow'/g +s/'execute'/'execute2'/g s/'d\.multicall=/'d\.multicall2=/g s/'d\.get_hash=/'d\.hash=/g s/'d\.get_local_id=/'d\.local_id=/g @@ -574,3 +603,578 @@ s/'execute_raw=/'execute\.raw=/g s/'execute_raw_nothrow=/'execute\.raw_nothrow=/g s/'execute_capture=/'execute\.capture=/g s/'execute_capture_nothrow=/'execute\.capture_nothrow=/g +s/'execute=/'execute2=/g + +s/"d\.multicall"/"d\.multicall2"/g +s/"d\.get_hash"/"d\.hash"/g +s/"d\.get_local_id"/"d\.local_id"/g +s/"d\.get_local_id_html"/"d\.local_id_html"/g +s/"d\.get_bitfield"/"d\.bitfield"/g +s/"d\.get_base_path"/"d\.base_path"/g +s/"d\.get_base_filename"/"d\.base_filename"/g +s/"d\.get_name"/"d\.name"/g +s/"d\.get_creation_date"/"d\.creation_date"/g +s/"d\.get_peer_exchange"/"d\.peer_exchange"/g +s/"d\.get_up_rate"/"d\.up\.rate"/g +s/"d\.get_up_total"/"d\.up\.total"/g +s/"d\.get_down_rate"/"d\.down\.rate"/g +s/"d\.get_down_total"/"d\.down\.total"/g +s/"d\.get_skip_rate"/"d\.skip\.rate"/g +s/"d\.get_skip_total"/"d\.skip\.total"/g +s/"d\.get_bytes_done"/"d\.bytes_done"/g +s/"d\.get_chunk_size"/"d\.chunk_size"/g +s/"d\.get_chunks_hashed"/"d\.chunks_hashed"/g +s/"d\.get_complete"/"d\.complete"/g +s/"d\.get_completed_bytes"/"d\.completed_bytes"/g +s/"d\.get_completed_chunks"/"d\.completed_chunks"/g +s/"d\.get_connection_current"/"d\.connection_current"/g +s/"d\.get_connection_leech"/"d\.connection_leech"/g +s/"d\.get_connection_seed"/"d\.connection_seed"/g +s/"d\.get_custom"/"d\.custom"/g +s/"d\.get_custom1"/"d\.custom1"/g +s/"d\.get_custom2"/"d\.custom2"/g +s/"d\.get_custom3"/"d\.custom3"/g +s/"d\.get_custom4"/"d\.custom4"/g +s/"d\.get_custom5"/"d\.custom5"/g +s/"d\.get_custom_throw"/"d\.custom_throw"/g +s/"d\.get_directory"/"d\.directory"/g +s/"d\.get_directory_base"/"d\.directory_base"/g +s/"d\.get_free_diskspace"/"d\.free_diskspace"/g +s/"d\.get_hashing"/"d\.hashing"/g +s/"d\.get_hashing_failed"/"d\.hashing_failed"/g +s/"d\.get_ignore_commands"/"d\.ignore_commands"/g +s/"d\.get_left_bytes"/"d\.left_bytes"/g +s/"d\.get_loaded_file"/"d\.loaded_file"/g +s/"d\.get_max_file_size"/"d\.max_file_size"/g +s/"d\.get_max_size_pex"/"d\.max_size_pex"/g +s/"d\.get_message"/"d\.message"/g +s/"d\.get_mode"/"d\.mode"/g +s/"d\.get_peers_accounted"/"d\.peers_accounted"/g +s/"d\.get_peers_complete"/"d\.peers_complete"/g +s/"d\.get_peers_connected"/"d\.peers_connected"/g +s/"d\.get_peers_max"/"d\.peers_max"/g +s/"d\.get_peers_min"/"d\.peers_min"/g +s/"d\.get_peers_not_connected"/"d\.peers_not_connected"/g +s/"d\.get_priority"/"d\.priority"/g +s/"d\.get_priority_str"/"d\.priority_str"/g +s/"d\.get_ratio"/"d\.ratio"/g +s/"d\.get_size_bytes"/"d\.size_bytes"/g +s/"d\.get_size_chunks"/"d\.size_chunks"/g +s/"d\.get_size_files"/"d\.size_files"/g +s/"d\.get_size_pex"/"d\.size_pex"/g +s/"d\.get_state"/"d\.state"/g +s/"d\.get_state_changed"/"d\.state_changed"/g +s/"d\.get_state_counter"/"d\.state_counter"/g +s/"d\.get_throttle_name"/"d\.throttle_name"/g +s/"d\.get_tied_to_file"/"d\.tied_to_file"/g +s/"d\.get_tracker_focus"/"d\.tracker_focus"/g +s/"d\.get_tracker_numwant"/"d\.tracker_numwant"/g +s/"d\.get_tracker_size"/"d\.tracker_size"/g +s/"d\.get_uploads_max"/"d\.uploads_max"/g +s/"d\.set_connection_current"/"d\.connection_current\.set"/g +s/"d\.set_custom"/"d\.custom\.set"/g +s/"d\.set_custom1"/"d\.custom1\.set"/g +s/"d\.set_custom2"/"d\.custom2\.set"/g +s/"d\.set_custom3"/"d\.custom3\.set"/g +s/"d\.set_custom4"/"d\.custom4\.set"/g +s/"d\.set_custom5"/"d\.custom5\.set"/g +s/"d\.set_directory"/"d\.directory\.set"/g +s/"d\.set_directory_base"/"d\.directory_base\.set"/g +s/"d\.set_hashing_failed"/"d\.hashing_failed\.set"/g +s/"d\.set_ignore_commands"/"d\.ignore_commands\.set"/g +s/"d\.set_max_file_size"/"d\.max_file_size\.set"/g +s/"d\.set_message"/"d\.message\.set"/g +s/"d\.set_peers_max"/"d\.peers_max\.set"/g +s/"d\.set_peers_min"/"d\.peers_min\.set"/g +s/"d\.set_priority"/"d\.priority\.set"/g +s/"d\.set_throttle_name"/"d\.throttle_name\.set"/g +s/"d\.set_tied_to_file"/"d\.tied_to_file\.set"/g +s/"d\.set_tracker_numwant"/"d\.tracker_numwant\.set"/g +s/"d\.set_uploads_max"/"d\.uploads_max\.set"/g +s/"create_link"/"d\.create_link"/g +s/"delete_link"/"d\.delete_link"/g +s/"delete_tied"/"d\.delete_tied"/g +s/"t\.get_group"/"t\.group"/g +s/"t\.get_id"/"t\.id"/g +s/"t\.get_min_interval"/"t\.min_interval"/g +s/"t\.get_normal_interval"/"t\.normal_interval"/g +s/"t\.get_scrape_complete"/"t\.scrape_complete"/g +s/"t\.get_scrape_downloaded"/"t\.scrape_downloaded"/g +s/"t\.get_scrape_incomplete"/"t\.scrape_incomplete"/g +s/"t\.get_scrape_time_last"/"t\.scrape_time_last"/g +s/"t\.get_type"/"t\.type"/g +s/"t\.get_url"/"t\.url"/g +s/"t\.set_enabled"/"t\.is_enabled\.set"/g +s/"f\.get_completed_chunks"/"f\.completed_chunks"/g +s/"f\.get_frozen_path"/"f\.frozen_path"/g +s/"f\.get_last_touched"/"f\.last_touched"/g +s/"f\.get_match_depth_next"/"f\.match_depth_next"/g +s/"f\.get_match_depth_prev"/"f\.match_depth_prev"/g +s/"f\.get_offset"/"f\.offset"/g +s/"f\.get_path"/"f\.path"/g +s/"f\.get_path_components"/"f\.path_components"/g +s/"f\.get_path_depth"/"f\.path_depth"/g +s/"f\.get_priority"/"f\.priority"/g +s/"f\.get_range_first"/"f\.range_first"/g +s/"f\.get_range_second"/"f\.range_second"/g +s/"f\.get_size_bytes"/"f\.size_bytes"/g +s/"f\.get_size_chunks"/"f\.size_chunks"/g +s/"f\.set_priority"/"f\.priority\.set"/g +s/"fi\.get_filename_last"/"fi\.filename_last"/g +s/"p\.get_address"/"p\.address"/g +s/"p\.get_client_version"/"p\.client_version"/g +s/"p\.get_completed_percent"/"p\.completed_percent"/g +s/"p\.get_down_rate"/"p\.down_rate"/g +s/"p\.get_down_total"/"p\.down_total"/g +s/"p\.get_id"/"p\.id"/g +s/"p\.get_id_html"/"p\.id_html"/g +s/"p\.get_options_str"/"p\.options_str"/g +s/"p\.get_peer_rate"/"p\.peer_rate"/g +s/"p\.get_peer_total"/"p\.peer_total"/g +s/"p\.get_port"/"p\.port"/g +s/"p\.get_up_rate"/"p\.up_rate"/g +s/"p\.get_up_total"/"p\.up_total"/g +s/"get_directory"/"directory\.default"/g +s/"set_directory",/"directory\.default\.set","",/g +s/"get_session"/"session\.path"/g +s/"set_session",/"session\.path\.set","",/g +s/"session_save"/"session\.save"/g +s/"get_name"/"session\.name"/g +s/"set_name",/"session\.name\.set","",/g +s/"system\.file_allocate"/"system\.file\.allocate"/g +s/"system\.file_allocate\.set"/"system\.file\.allocate\.set"/g +s/"get_max_file_size"/"system\.file\.max_size"/g +s/"set_max_file_size",/"system\.file\.max_size\.set","",/g +s/"get_split_file_size"/"system\.file\.split_size"/g +s/"set_split_file_size",/"system\.file\.split_size\.set","",/g +s/"get_split_suffix"/"system\.file\.split_suffix"/g +s/"set_split_suffix",/"system\.file\.split_suffix\.set","",/g +s/"get_timeout_sync"/"pieces\.sync\.timeout"/g +s/"set_timeout_sync",/"pieces\.sync\.timeout\.set","",/g +s/"get_timeout_safe_sync"/"pieces\.sync\.timeout_safe"/g +s/"set_timeout_safe_sync",/"pieces\.sync\.timeout_safe\.set","",/g +s/"get_preload_type"/"pieces\.preload\.type"/g +s/"get_preload_min_size"/"pieces\.preload\.min_size"/g +s/"get_preload_required_rate"/"pieces\.preload\.min_rate"/g +s/"set_preload_type",/"pieces\.preload\.type\.set","",/g +s/"set_preload_min_size",/"pieces\.preload\.min_size\.set","",/g +s/"set_preload_required_rate",/"pieces\.preload\.min_rate\.set","",/g +s/"get_stats_preloaded"/"pieces\.stats_preloaded"/g +s/"get_stats_not_preloaded"/"pieces\.stats_not_preloaded"/g +s/"get_safe_sync"/"pieces\.sync\.always_safe"/g +s/"set_safe_sync",/"pieces\.sync\.always_safe\.set","",/g +s/"get_memory_usage"/"pieces\.memory\.current"/g +s/"get_max_memory_usage"/"pieces\.memory\.max"/g +s/"set_max_memory_usage",/"pieces\.memory\.max\.set","",/g +s/"load"/"load\.normal"/g +s/"load_verbose"/"load\.verbose"/g +s/"load_start"/"load\.start"/g +s/"load_start_verbose"/"load\.start_verbose"/g +s/"load_raw"/"load\.raw"/g +s/"load_raw_start"/"load\.raw_start"/g +s/"load_raw_verbose"/"load\.raw_verbose"/g +s/"get_connection_leech"/"protocol\.connection\.leech"/g +s/"get_connection_seed"/"protocol\.connection\.seed"/g +s/"set_connection_leech",/"protocol\.connection\.leech\.set","",/g +s/"set_connection_seed",/"protocol\.connection\.seed\.set","",/g +s/"throttle_up"/"throttle\.up"/g +s/"throttle_down"/"throttle\.down"/g +s/"throttle_ip"/"throttle\.ip"/g +s/"get_throttle_up_max"/"throttle\.up\.max"/g +s/"get_throttle_up_rate"/"throttle\.up\.rate"/g +s/"get_throttle_down_max"/"throttle\.down\.max"/g +s/"get_throttle_down_rate"/"throttle\.down\.rate"/g +s/"set_min_peers",/"throttle\.min_peers\.normal\.set","",/g +s/"set_max_peers",/"throttle\.max_peers\.normal\.set","",/g +s/"set_min_peers_seed",/"throttle\.min_peers\.seed\.set","",/g +s/"set_max_peers_seed",/"throttle\.max_peers\.seed\.set","",/g +s/"set_max_uploads",/"throttle\.max_uploads\.set","",/g +s/"set_max_uploads_div",/"throttle\.max_uploads\.div\.set","",/g +s/"set_max_uploads_global",/"throttle\.max_uploads\.global\.set","",/g +s/"set_max_downloads_div",/"throttle\.max_downloads\.div\.set","",/g +s/"set_max_downloads_global",/"throttle\.max_downloads\.global\.set","",/g +s/"get_min_peers"/"throttle\.min_peers\.normal"/g +s/"get_max_peers"/"throttle\.max_peers\.normal"/g +s/"get_min_peers_seed"/"throttle\.min_peers\.seed"/g +s/"get_max_peers_seed"/"throttle\.max_peers\.seed"/g +s/"get_max_uploads"/"throttle\.max_uploads"/g +s/"get_max_uploads_div"/"throttle\.max_uploads\.div"/g +s/"get_max_uploads_global"/"throttle\.max_uploads\.global"/g +s/"get_max_downloads_div"/"throttle\.max_downloads\.div"/g +s/"get_max_downloads_global"/"throttle\.max_downloads\.global"/g +s/"get_up_rate"/"throttle\.global_up\.rate"/g +s/"get_up_total"/"throttle\.global_up\.total"/g +s/"get_upload_rate"/"throttle\.global_up\.max_rate"/g +s/"set_upload_rate",/"throttle\.global_up\.max_rate\.set","",/g +s/"get_down_rate"/"throttle\.global_down\.rate"/g +s/"get_down_total"/"throttle\.global_down\.total"/g +s/"get_download_rate"/"throttle\.global_down\.max_rate"/g +s/"set_download_rate",/"throttle\.global_down\.max_rate\.set","",/g +s/"get_send_buffer_size"/"network\.send_buffer\.size"/g +s/"set_send_buffer_size",/"network\.send_buffer\.size\.set","",/g +s/"get_receive_buffer_size"/"network\.receive_buffer\.size"/g +s/"set_receive_buffer_size",/"network\.receive_buffer\.size\.set","",/g +s/"set_bind",/"network\.bind_address\.set","",/g +s/"get_bind"/"network\.bind_address"/g +s/"set_ip",/"network\.local_address\.set","",/g +s/"get_ip"/"network\.local_address"/g +s/"get_port_range"/"network\.port_range"/g +s/"set_port_range",/"network\.port_range\.set","",/g +s/"get_port_random"/"network\.port_random"/g +s/"set_port_random",/"network\.port_random\.set","",/g +s/"port_open"/"network\.port_open\.set"/g +s/"get_port_open"/"network\.port_open"/g +s/"set_port_open",/"network\.port_open\.set","",/g +s/"set_proxy_address",/"network\.proxy_address\.set","",/g +s/"get_proxy_address"/"network\.proxy_address"/g +s/"scgi_port"/"network\.scgi\.open_port"/g +s/"scgi_local"/"network\.scgi\.open_local"/g +s/"scgi_dont_route"/"network\.scgi\.dont_route\.set"/g +s/"set_scgi_dont_route",/"network\.scgi\.dont_route\.set","",/g +s/"get_scgi_dont_route"/"network\.scgi\.dont_route"/g +s/"get_max_open_sockets"/"network\.max_open_sockets"/g +s/"get_max_open_files"/"network\.max_open_files"/g +s/"set_max_open_files",/"network\.max_open_files\.set","",/g + +s/"xmlrpc_dialect",/"network\.xmlrpc\.dialect\.set",""/g +s/"set_xmlrpc_dialect",/"network\.xmlrpc\.dialect\.set","",/g +s/"xmlrpc_size_limit",/"network\.xmlrpc\.size_limit\.set","",/g +s/"get_xmlrpc_size_limit"/"network\.xmlrpc\.size_limit"/g +s/"set_xmlrpc_size_limit",/"network\.xmlrpc\.size_limit\.set","",/g + +s/"http_capath"/"network\.http\.capath\.set"/g +s/"get_http_capath"/"network\.http\.capath"/g +s/"set_http_capath",/"network\.http\.capath\.set","",/g +s/"http_cacert"/"network\.http\.cacert\.set"/g +s/"get_http_cacert"/"network\.http\.cacert"/g +s/"set_http_cacert",/"network\.http\.cacert\.set","",/g +s/"get_max_open_http"/"network\.http\.max_open"/g +s/"set_max_open_http",/"network\.http\.max_open\.set","",/g +s/"http_proxy"/"network\.http\.proxy_address\.set"/g +s/"get_http_proxy"/"network\.http\.proxy_address"/g +s/"set_http_proxy",/"network\.http\.proxy_address\.set","",/g +s/"peer_exchange"/"protocol\.pex\.set"/g +s/"get_peer_exchange"/"protocol\.pex"/g +s/"set_peer_exchange",/"protocol\.pex\.set","",/g +s/"tracker_numwant"/"trackers\.numwant\.set"/g +s/"get_tracker_numwant"/"trackers\.numwant"/g +s/"set_tracker_numwant",/"trackers\.numwant\.set","",/g +s/"use_udp_trackers"/"trackers\.use_udp\.set"/g +s/"get_use_udp_trackers"/"trackers\.use_udp"/g +s/"set_use_udp_trackers",/"trackers\.use_udp\.set","",/g +s/"dht_add_node"/"dht\.add_node"/g +s/"dht_statistics"/"dht\.statistics"/g +s/"get_dht_port"/"dht\.port"/g +s/"set_dht_port",/"dht\.port\.set","",/g +s/"get_dht_throttle"/"dht\.throttle\.name"/g +s/"set_dht_throttle",/"dht\.throttle\.name\.set","",/g +s/"get_session_lock"/"session\.use_lock"/g +s/"set_session_lock",/"session\.use_lock\.set","",/g +s/"get_session_on_completion"/"session\.on_completion"/g +s/"set_session_on_completion",/"session\.on_completion\.set","",/g +s/"get_check_hash"/"pieces\.hash\.on_completion"/g +s/"set_check_hash",/"pieces\.hash\.on_completion\.set","",/g +s/"view_add"/"view\.add"/g +s/"view_filter"/"view\.filter"/g +s/"view_filter_on"/"view\.filter_on"/g +s/"view_list"/"view\.list"/g +s/"view_set"/"view\.set"/g +s/"view_sort"/"view\.sort"/g +s/"view_sort_current"/"view\.sort_current"/g +s/"view_sort_new"/"view\.sort_new"/g +s/"execute_throw"/"execute\.throw"/g +s/"execute_nothrow"/"execute\.nothrow"/g +s/"execute_raw"/"execute\.raw"/g +s/"execute_raw_nothrow"/"execute\.raw_nothrow"/g +s/"execute_capture"/"execute\.capture"/g +s/"execute_capture_nothrow"/"execute\.capture_nothrow"/g +s/"execute"/"execute2"/g +s/"d\.multicall=/"d\.multicall2=/g +s/"d\.get_hash=/"d\.hash=/g +s/"d\.get_local_id=/"d\.local_id=/g +s/"d\.get_local_id_html=/"d\.local_id_html=/g +s/"d\.get_bitfield=/"d\.bitfield=/g +s/"d\.get_base_path=/"d\.base_path=/g +s/"d\.get_base_filename=/"d\.base_filename=/g +s/"d\.get_name=/"d\.name=/g +s/"d\.get_creation_date=/"d\.creation_date=/g +s/"d\.get_peer_exchange=/"d\.peer_exchange=/g +s/"d\.get_up_rate=/"d\.up\.rate=/g +s/"d\.get_up_total=/"d\.up\.total=/g +s/"d\.get_down_rate=/"d\.down\.rate=/g +s/"d\.get_down_total=/"d\.down\.total=/g +s/"d\.get_skip_rate=/"d\.skip\.rate=/g +s/"d\.get_skip_total=/"d\.skip\.total=/g +s/"d\.get_bytes_done=/"d\.bytes_done=/g +s/"d\.get_chunk_size=/"d\.chunk_size=/g +s/"d\.get_chunks_hashed=/"d\.chunks_hashed=/g +s/"d\.get_complete=/"d\.complete=/g +s/"d\.get_completed_bytes=/"d\.completed_bytes=/g +s/"d\.get_completed_chunks=/"d\.completed_chunks=/g +s/"d\.get_connection_current=/"d\.connection_current=/g +s/"d\.get_connection_leech=/"d\.connection_leech=/g +s/"d\.get_connection_seed=/"d\.connection_seed=/g +s/"d\.get_custom=/"d\.custom=/g +s/"d\.get_custom1=/"d\.custom1=/g +s/"d\.get_custom2=/"d\.custom2=/g +s/"d\.get_custom3=/"d\.custom3=/g +s/"d\.get_custom4=/"d\.custom4=/g +s/"d\.get_custom5=/"d\.custom5=/g +s/"d\.get_custom_throw=/"d\.custom_throw=/g +s/"d\.get_directory=/"d\.directory=/g +s/"d\.get_directory_base=/"d\.directory_base=/g +s/"d\.get_free_diskspace=/"d\.free_diskspace=/g +s/"d\.get_hashing=/"d\.hashing=/g +s/"d\.get_hashing_failed=/"d\.hashing_failed=/g +s/"d\.get_ignore_commands=/"d\.ignore_commands=/g +s/"d\.get_left_bytes=/"d\.left_bytes=/g +s/"d\.get_loaded_file=/"d\.loaded_file=/g +s/"d\.get_max_file_size=/"d\.max_file_size=/g +s/"d\.get_max_size_pex=/"d\.max_size_pex=/g +s/"d\.get_message=/"d\.message=/g +s/"d\.get_mode=/"d\.mode=/g +s/"d\.get_peers_accounted=/"d\.peers_accounted=/g +s/"d\.get_peers_complete=/"d\.peers_complete=/g +s/"d\.get_peers_connected=/"d\.peers_connected=/g +s/"d\.get_peers_max=/"d\.peers_max=/g +s/"d\.get_peers_min=/"d\.peers_min=/g +s/"d\.get_peers_not_connected=/"d\.peers_not_connected=/g +s/"d\.get_priority=/"d\.priority=/g +s/"d\.get_priority_str=/"d\.priority_str=/g +s/"d\.get_ratio=/"d\.ratio=/g +s/"d\.get_size_bytes=/"d\.size_bytes=/g +s/"d\.get_size_chunks=/"d\.size_chunks=/g +s/"d\.get_size_files=/"d\.size_files=/g +s/"d\.get_size_pex=/"d\.size_pex=/g +s/"d\.get_state=/"d\.state=/g +s/"d\.get_state_changed=/"d\.state_changed=/g +s/"d\.get_state_counter=/"d\.state_counter=/g +s/"d\.get_throttle_name=/"d\.throttle_name=/g +s/"d\.get_tied_to_file=/"d\.tied_to_file=/g +s/"d\.get_tracker_focus=/"d\.tracker_focus=/g +s/"d\.get_tracker_numwant=/"d\.tracker_numwant=/g +s/"d\.get_tracker_size=/"d\.tracker_size=/g +s/"d\.get_uploads_max=/"d\.uploads_max=/g +s/"d\.set_connection_current=/"d\.connection_current\.set=/g +s/"d\.set_custom=/"d\.custom\.set=/g +s/"d\.set_custom1=/"d\.custom1\.set=/g +s/"d\.set_custom2=/"d\.custom2\.set=/g +s/"d\.set_custom3=/"d\.custom3\.set=/g +s/"d\.set_custom4=/"d\.custom4\.set=/g +s/"d\.set_custom5=/"d\.custom5\.set=/g +s/"d\.set_directory=/"d\.directory\.set=/g +s/"d\.set_directory_base=/"d\.directory_base\.set=/g +s/"d\.set_hashing_failed=/"d\.hashing_failed\.set=/g +s/"d\.set_ignore_commands=/"d\.ignore_commands\.set=/g +s/"d\.set_max_file_size=/"d\.max_file_size\.set=/g +s/"d\.set_message=/"d\.message\.set=/g +s/"d\.set_peers_max=/"d\.peers_max\.set=/g +s/"d\.set_peers_min=/"d\.peers_min\.set=/g +s/"d\.set_priority=/"d\.priority\.set=/g +s/"d\.set_throttle_name=/"d\.throttle_name\.set=/g +s/"d\.set_tied_to_file=/"d\.tied_to_file\.set=/g +s/"d\.set_tracker_numwant=/"d\.tracker_numwant\.set=/g +s/"d\.set_uploads_max=/"d\.uploads_max\.set=/g +s/"create_link=/"d\.create_link=/g +s/"delete_link=/"d\.delete_link=/g +s/"delete_tied=/"d\.delete_tied=/g +s/"t\.get_group=/"t\.group=/g +s/"t\.get_id=/"t\.id=/g +s/"t\.get_min_interval=/"t\.min_interval=/g +s/"t\.get_normal_interval=/"t\.normal_interval=/g +s/"t\.get_scrape_complete=/"t\.scrape_complete=/g +s/"t\.get_scrape_downloaded=/"t\.scrape_downloaded=/g +s/"t\.get_scrape_incomplete=/"t\.scrape_incomplete=/g +s/"t\.get_scrape_time_last=/"t\.scrape_time_last=/g +s/"t\.get_type=/"t\.type=/g +s/"t\.get_url=/"t\.url=/g +s/"t\.set_enabled=/"t\.is_enabled\.set=/g +s/"f\.get_completed_chunks=/"f\.completed_chunks=/g +s/"f\.get_frozen_path=/"f\.frozen_path=/g +s/"f\.get_last_touched=/"f\.last_touched=/g +s/"f\.get_match_depth_next=/"f\.match_depth_next=/g +s/"f\.get_match_depth_prev=/"f\.match_depth_prev=/g +s/"f\.get_offset=/"f\.offset=/g +s/"f\.get_path=/"f\.path=/g +s/"f\.get_path_components=/"f\.path_components=/g +s/"f\.get_path_depth=/"f\.path_depth=/g +s/"f\.get_priority=/"f\.priority=/g +s/"f\.get_range_first=/"f\.range_first=/g +s/"f\.get_range_second=/"f\.range_second=/g +s/"f\.get_size_bytes=/"f\.size_bytes=/g +s/"f\.get_size_chunks=/"f\.size_chunks=/g +s/"f\.set_priority=/"f\.priority\.set=/g +s/"fi\.get_filename_last=/"fi\.filename_last=/g +s/"p\.get_address=/"p\.address=/g +s/"p\.get_client_version=/"p\.client_version=/g +s/"p\.get_completed_percent=/"p\.completed_percent=/g +s/"p\.get_down_rate=/"p\.down_rate=/g +s/"p\.get_down_total=/"p\.down_total=/g +s/"p\.get_id=/"p\.id=/g +s/"p\.get_id_html=/"p\.id_html=/g +s/"p\.get_options_str=/"p\.options_str=/g +s/"p\.get_peer_rate=/"p\.peer_rate=/g +s/"p\.get_peer_total=/"p\.peer_total=/g +s/"p\.get_port=/"p\.port=/g +s/"p\.get_up_rate=/"p\.up_rate=/g +s/"p\.get_up_total=/"p\.up_total=/g +s/"system\.method\.insert=/"method\.insert=/g +s/"system\.method\.erase=/"method\.erase=/g +s/"system\.method\.get=/"method\.get=/g +s/"system\.method\.set=/"method\.set=/g +s/"system\.method\.list_keys=/"method\.list_keys=/g +s/"system\.method\.has_key=/"method\.has_key=/g +s/"system\.method\.set_key=/"method\.set_key=/g +s/"get_directory=/"directory\.default=/g +s/"set_directory=/"directory\.default\.set=/g +s/"get_session=/"session\.path=/g +s/"set_session=/"session\.path\.set=/g +s/"session_save=/"session\.save=/g +s/"get_name=/"session\.name=/g +s/"set_name=/"session\.name\.set=/g +s/"system\.file_allocate=/"system\.file\.allocate=/g +s/"system\.file_allocate\.set=/"system\.file\.allocate\.set=/g +s/"get_max_file_size=/"system\.file\.max_size=/g +s/"set_max_file_size=/"system\.file\.max_size\.set=/g +s/"get_split_file_size=/"system\.file\.split_size=/g +s/"set_split_file_size=/"system\.file\.split_size\.set=/g +s/"get_split_suffix=/"system\.file\.split_suffix=/g +s/"set_split_suffix=/"system\.file\.split_suffix\.set=/g +s/"get_timeout_sync=/"pieces\.sync\.timeout=/g +s/"set_timeout_sync=/"pieces\.sync\.timeout\.set=/g +s/"get_timeout_safe_sync=/"pieces\.sync\.timeout_safe=/g +s/"set_timeout_safe_sync=/"pieces\.sync\.timeout_safe\.set=/g +s/"get_preload_type=/"pieces\.preload\.type=/g +s/"get_preload_min_size=/"pieces\.preload\.min_size=/g +s/"get_preload_required_rate=/"pieces\.preload\.min_rate=/g +s/"set_preload_type=/"pieces\.preload\.type\.set=/g +s/"set_preload_min_size=/"pieces\.preload\.min_size\.set=/g +s/"set_preload_required_rate=/"pieces\.preload\.min_rate\.set=/g +s/"get_stats_preloaded=/"pieces\.stats_preloaded=/g +s/"get_stats_not_preloaded=/"pieces\.stats_not_preloaded=/g +s/"get_safe_sync=/"pieces\.sync\.always_safe=/g +s/"set_safe_sync=/"pieces\.sync\.always_safe\.set=/g +s/"get_memory_usage=/"pieces\.memory\.current=/g +s/"get_max_memory_usage=/"pieces\.memory\.max=/g +s/"set_max_memory_usage=/"pieces\.memory\.max\.set=/g +s/"load=/"load\.normal=/g +s/"load_verbose=/"load\.verbose=/g +s/"load_start=/"load\.start=/g +s/"load_start_verbose=/"load\.start_verbose=/g +s/"load_raw=/"load\.raw=/g +s/"load_raw_start=/"load\.raw_start=/g +s/"load_raw_verbose=/"load\.raw_verbose=/g +s/"get_connection_leech=/"protocol\.connection\.leech=/g +s/"get_connection_seed=/"protocol\.connection\.seed=/g +s/"set_connection_leech=/"protocol\.connection\.leech\.set=/g +s/"set_connection_seed=/"protocol\.connection\.seed\.set=/g +s/"throttle_up=/"throttle\.up=/g +s/"throttle_down=/"throttle\.down=/g +s/"throttle_ip=/"throttle\.ip=/g +s/"get_throttle_up_max=/"throttle\.up\.max=/g +s/"get_throttle_up_rate=/"throttle\.up\.rate=/g +s/"get_throttle_down_max=/"throttle\.down\.max=/g +s/"get_throttle_down_rate=/"throttle\.down\.rate=/g +s/"set_min_peers=/"throttle\.min_peers\.normal\.set=/g +s/"set_max_peers=/"throttle\.max_peers\.normal\.set=/g +s/"set_min_peers_seed=/"throttle\.min_peers\.seed\.set=/g +s/"set_max_peers_seed=/"throttle\.max_peers\.seed\.set=/g +s/"set_max_uploads=/"throttle\.max_uploads\.set=/g +s/"set_max_uploads_div=/"throttle\.max_uploads\.div\.set=/g +s/"set_max_uploads_global=/"throttle\.max_uploads\.global\.set=/g +s/"set_max_downloads_div=/"throttle\.max_downloads\.div\.set=/g +s/"set_max_downloads_global=/"throttle\.max_downloads\.global\.set=/g +s/"get_min_peers=/"throttle\.min_peers\.normal=/g +s/"get_max_peers=/"throttle\.max_peers\.normal=/g +s/"get_min_peers_seed=/"throttle\.min_peers\.seed=/g +s/"get_max_peers_seed=/"throttle\.max_peers\.seed=/g +s/"get_max_uploads=/"throttle\.max_uploads=/g +s/"get_max_uploads_div=/"throttle\.max_uploads\.div=/g +s/"get_max_uploads_global=/"throttle\.max_uploads\.global=/g +s/"get_max_downloads_div=/"throttle\.max_downloads\.div=/g +s/"get_max_downloads_global=/"throttle\.max_downloads\.global=/g +s/"get_up_rate=/"throttle\.global_up\.rate=/g +s/"get_up_total=/"throttle\.global_up\.total=/g +s/"get_upload_rate=/"throttle\.global_up\.max_rate=/g +s/"set_upload_rate=/"throttle\.global_up\.max_rate\.set=/g +s/"get_down_rate=/"throttle\.global_down\.rate=/g +s/"get_down_total=/"throttle\.global_down\.total=/g +s/"get_download_rate=/"throttle\.global_down\.max_rate=/g +s/"set_download_rate=/"throttle\.global_down\.max_rate\.set=/g +s/"get_send_buffer_size=/"network\.send_buffer\.size=/g +s/"set_send_buffer_size=/"network\.send_buffer\.size\.set=/g +s/"get_receive_buffer_size=/"network\.receive_buffer\.size=/g +s/"set_receive_buffer_size=/"network\.receive_buffer\.size\.set=/g +s/"set_bind=/"network\.bind_address\.set=/g +s/"get_bind=/"network\.bind_address=/g +s/"set_ip=/"network\.local_address\.set=/g +s/"get_ip=/"network\.local_address=/g +s/"get_port_range=/"network\.port_range=/g +s/"set_port_range=/"network\.port_range\.set=/g +s/"get_port_random=/"network\.port_random=/g +s/"set_port_random=/"network\.port_random\.set=/g +s/"port_open=/"network\.port_open\.set=/g +s/"get_port_open=/"network\.port_open=/g +s/"set_port_open=/"network\.port_open\.set=/g +s/"set_proxy_address=/"network\.proxy_address\.set=/g +s/"get_proxy_address=/"network\.proxy_address=/g +s/"scgi_port=/"network\.scgi\.open_port=/g +s/"scgi_local=/"network\.scgi\.open_local=/g +s/"scgi_dont_route=/"network\.scgi\.dont_route\.set=/g +s/"set_scgi_dont_route=/"network\.scgi\.dont_route\.set=/g +s/"get_scgi_dont_route=/"network\.scgi\.dont_route=/g +s/"get_max_open_sockets=/"network\.max_open_sockets=/g +s/"get_max_open_files=/"network\.max_open_files=/g +s/"set_max_open_files=/"network\.max_open_files\.set=/g +s/"xmlrpc_dialect=/"network\.xmlrpc\.dialect\.set=/g +s/"set_xmlrpc_dialect=/"network\.xmlrpc\.dialect\.set=/g +s/"xmlrpc_size_limit=/"network\.xmlrpc\.size_limit\.set=/g +s/"get_xmlrpc_size_limit=/"network\.xmlrpc\.size_limit=/g +s/"set_xmlrpc_size_limit=/"network\.xmlrpc\.size_limit\.set=/g +s/"http_capath=/"network\.http\.capath\.set=/g +s/"get_http_capath=/"network\.http\.capath=/g +s/"set_http_capath=/"network\.http\.capath\.set=/g +s/"http_cacert=/"network\.http\.cacert\.set=/g +s/"get_http_cacert=/"network\.http\.cacert=/g +s/"set_http_cacert=/"network\.http\.cacert\.set=/g +s/"get_max_open_http=/"network\.http\.max_open=/g +s/"set_max_open_http=/"network\.http\.max_open\.set=/g +s/"http_proxy=/"network\.http\.proxy_address\.set=/g +s/"get_http_proxy=/"network\.http\.proxy_address=/g +s/"set_http_proxy=/"network\.http\.proxy_address\.set=/g +s/"peer_exchange=/"protocol\.pex\.set=/g +s/"get_peer_exchange=/"protocol\.pex=/g +s/"set_peer_exchange=/"protocol\.pex\.set=/g +s/"tracker_numwant=/"trackers\.numwant\.set=/g +s/"get_tracker_numwant=/"trackers\.numwant=/g +s/"set_tracker_numwant=/"trackers\.numwant\.set=/g +s/"use_udp_trackers=/"trackers\.use_udp\.set=/g +s/"get_use_udp_trackers=/"trackers\.use_udp=/g +s/"set_use_udp_trackers=/"trackers\.use_udp\.set=/g +s/"dht_add_node=/"dht\.add_node=/g +s/"dht_statistics=/"dht\.statistics=/g +s/"get_dht_port=/"dht\.port=/g +s/"set_dht_port=/"dht\.port\.set=/g +s/"get_dht_throttle=/"dht\.throttle\.name=/g +s/"set_dht_throttle=/"dht\.throttle\.name\.set=/g +s/"get_session_lock=/"session\.use_lock=/g +s/"set_session_lock=/"session\.use_lock\.set=/g +s/"get_session_on_completion=/"session\.on_completion=/g +s/"set_session_on_completion=/"session\.on_completion\.set=/g +s/"get_check_hash=/"pieces\.hash\.on_completion=/g +s/"set_check_hash=/"pieces\.hash\.on_completion\.set=/g +s/"view_add=/"view\.add=/g +s/"view_filter=/"view\.filter=/g +s/"view_filter_on=/"view\.filter_on=/g +s/"view_list=/"view\.list=/g +s/"view_set=/"view\.set=/g +s/"view_sort=/"view\.sort=/g +s/"view_sort_current=/"view\.sort_current=/g +s/"view_sort_new=/"view\.sort_new=/g +s/"execute_throw=/"execute\.throw=/g +s/"execute_nothrow=/"execute\.nothrow=/g +s/"execute_raw=/"execute\.raw=/g +s/"execute_raw_nothrow=/"execute\.raw_nothrow=/g +s/"execute_capture=/"execute\.capture=/g +s/"execute_capture_nothrow=/"execute\.capture_nothrow=/g +s/"execute=/"execute2=/g From 09f6243c6a73f1dcc0d41cfb9b4780062bf5a733 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Thu, 12 Jun 2014 22:08:40 +0900 Subject: [PATCH 17/20] Cleaned up how ssl_verify_host/peer is set. --- src/command_network.cc | 16 ++++++++-------- src/core/curl_stack.cc | 4 ++-- src/core/curl_stack.h | 7 +++---- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/command_network.cc b/src/command_network.cc index 792b22f0..b34c1865 100644 --- a/src/command_network.cc +++ b/src/command_network.cc @@ -264,20 +264,20 @@ initialize_command_network() { CMD2_VAR_STRING ("protocol.choke_heuristics.down.leech", "download_leech"); CMD2_VAR_STRING ("protocol.choke_heuristics.down.seed", "download_leech"); - CMD2_ANY ("network.http.capath", tr1::bind(&core::CurlStack::http_capath, httpStack)); - CMD2_ANY_STRING_V("network.http.capath.set", tr1::bind(&core::CurlStack::set_http_capath, httpStack, tr1::placeholders::_2)); CMD2_ANY ("network.http.cacert", tr1::bind(&core::CurlStack::http_cacert, httpStack)); CMD2_ANY_STRING_V("network.http.cacert.set", tr1::bind(&core::CurlStack::set_http_cacert, httpStack, tr1::placeholders::_2)); - CMD2_ANY ("network.http.proxy_address", tr1::bind(&core::CurlStack::http_proxy, httpStack)); - CMD2_ANY_STRING_V("network.http.proxy_address.set", tr1::bind(&core::CurlStack::set_http_proxy, httpStack, tr1::placeholders::_2)); - CMD2_ANY ("network.http.max_open", tr1::bind(&core::CurlStack::max_active, httpStack)); - CMD2_ANY_VALUE_V ("network.http.max_open.set", tr1::bind(&core::CurlStack::set_max_active, httpStack, tr1::placeholders::_2)); - CMD2_ANY ("network.http.ssl_verify_peer", tr1::bind(&core::CurlStack::ssl_verify_peer, httpStack)); - CMD2_ANY_VALUE_V ("network.http.ssl_verify_peer.set", tr1::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, tr1::placeholders::_2)); + CMD2_ANY ("network.http.capath", tr1::bind(&core::CurlStack::http_capath, httpStack)); + CMD2_ANY_STRING_V("network.http.capath.set", tr1::bind(&core::CurlStack::set_http_capath, httpStack, tr1::placeholders::_2)); CMD2_ANY ("network.http.dns_cache_timeout", tr1::bind(&core::CurlStack::dns_timeout, httpStack)); CMD2_ANY_VALUE_V ("network.http.dns_cache_timeout.set", tr1::bind(&core::CurlStack::set_dns_timeout, httpStack, tr1::placeholders::_2)); + CMD2_ANY ("network.http.max_open", tr1::bind(&core::CurlStack::max_active, httpStack)); + CMD2_ANY_VALUE_V ("network.http.max_open.set", tr1::bind(&core::CurlStack::set_max_active, httpStack, tr1::placeholders::_2)); + CMD2_ANY ("network.http.proxy_address", tr1::bind(&core::CurlStack::http_proxy, httpStack)); + CMD2_ANY_STRING_V("network.http.proxy_address.set", tr1::bind(&core::CurlStack::set_http_proxy, httpStack, tr1::placeholders::_2)); CMD2_ANY ("network.http.ssl_verify_host", tr1::bind(&core::CurlStack::ssl_verify_host, httpStack)); CMD2_ANY_VALUE_V ("network.http.ssl_verify_host.set", tr1::bind(&core::CurlStack::set_ssl_verify_host, httpStack, tr1::placeholders::_2)); + CMD2_ANY ("network.http.ssl_verify_peer", tr1::bind(&core::CurlStack::ssl_verify_peer, httpStack)); + CMD2_ANY_VALUE_V ("network.http.ssl_verify_peer.set", tr1::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, tr1::placeholders::_2)); CMD2_ANY ("network.send_buffer.size", tr1::bind(&torrent::ConnectionManager::send_buffer_size, cm)); CMD2_ANY_VALUE_V ("network.send_buffer.size.set", tr1::bind(&torrent::ConnectionManager::set_send_buffer_size, cm, tr1::placeholders::_2)); diff --git a/src/core/curl_stack.cc b/src/core/curl_stack.cc index 9397c04a..8fcdded3 100644 --- a/src/core/curl_stack.cc +++ b/src/core/curl_stack.cc @@ -51,9 +51,9 @@ CurlStack::CurlStack() : m_handle((void*)curl_multi_init()), m_active(0), m_maxActive(32), + m_ssl_verify_host(true), m_ssl_verify_peer(true), - m_dns_timeout(60), - m_ssl_verify_host(2) { + m_dns_timeout(60) { m_taskTimeout.slot() = std::tr1::bind(&CurlStack::receive_timeout, this); diff --git a/src/core/curl_stack.h b/src/core/curl_stack.h index c838b4f6..ace12abd 100644 --- a/src/core/curl_stack.h +++ b/src/core/curl_stack.h @@ -100,15 +100,14 @@ class CurlStack : std::deque { void set_http_capath(const std::string& s) { m_httpCaPath = s; } void set_http_cacert(const std::string& s) { m_httpCaCert = s; } + bool ssl_verify_host() const { return m_ssl_verify_host; } bool ssl_verify_peer() const { return m_ssl_verify_peer; } + void set_ssl_verify_host(bool s) { m_ssl_verify_host = s; } void set_ssl_verify_peer(bool s) { m_ssl_verify_peer = s; } long dns_timeout() const { return m_dns_timeout; } void set_dns_timeout(long timeout) { m_dns_timeout = timeout; } - long ssl_verify_host() const { return m_ssl_verify_host; } - void set_ssl_verify_host(long s) { m_ssl_verify_host = s; } - static void global_init(); static void global_cleanup(); @@ -143,9 +142,9 @@ class CurlStack : std::deque { std::string m_httpCaPath; std::string m_httpCaCert; + long m_ssl_verify_host; bool m_ssl_verify_peer; long m_dns_timeout; - long m_ssl_verify_host; }; } From 1fefc4720bc8769f6c5d27e4e9385df06955e54d Mon Sep 17 00:00:00 2001 From: rakshasa Date: Thu, 12 Jun 2014 22:19:33 +0900 Subject: [PATCH 18/20] Forgot to commit changes to how ssl_verify_host/peer parameters are converted. --- src/core/curl_stack.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/curl_stack.cc b/src/core/curl_stack.cc index 8fcdded3..72cb3a0a 100644 --- a/src/core/curl_stack.cc +++ b/src/core/curl_stack.cc @@ -181,9 +181,9 @@ CurlStack::add_get(CurlGet* get) { if (!m_httpCaCert.empty()) curl_easy_setopt(get->handle(), CURLOPT_CAINFO, m_httpCaCert.c_str()); - curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYPEER, (long)m_ssl_verify_peer); + curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYHOST, (long)(m_ssl_verify_host ? 2 : 0)); + curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYPEER, (long)(m_ssl_verify_peer ? 1 : 0)); curl_easy_setopt(get->handle(), CURLOPT_DNS_CACHE_TIMEOUT, m_dns_timeout); - curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYHOST, m_ssl_verify_host); base_type::push_back(get); From 4244921383d0da565501c30590fae0a9080f8a44 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Fri, 13 Jun 2014 18:23:37 +0900 Subject: [PATCH 19/20] Added script to generate option strings wiki page. --- doc/scripts/print_option_string.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 doc/scripts/print_option_string.sh diff --git a/doc/scripts/print_option_string.sh b/doc/scripts/print_option_string.sh new file mode 100755 index 00000000..76abe002 --- /dev/null +++ b/doc/scripts/print_option_string.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +PORT_NUMBER=${1:-5001} + +echo "Option Strings" +echo "==============" +echo +echo "Introduction" +echo "------------" +echo +echo "Client version: " `xmlrpc2scgi.py -p scgi://127.0.0.1:${PORT_NUMBER} system.client_version` +echo +echo "Generated by 'rtorrent/doc/scripts/print_option_string.sh' on `date -u`." + +for i in strings.choke_heuristics strings.choke_heuristics.upload strings.choke_heuristics.download strings.connection_type strings.encryption strings.ip_filter strings.ip_tos strings.log_group strings.tracker_event strings.tracker_mode; do + echo + echo $i + echo `echo $i | tr 'a-z_.' '-'` + echo + echo '```' + xmlrpc2scgi.py -p scgi://127.0.0.1:${PORT_NUMBER} $i | tr , '\n' | tr '[' ' ' | tr ']' ' ' + echo '```' +done From b8e24b78cda4fba83ebe51784a35c8336cc35d9f Mon Sep 17 00:00:00 2001 From: rakshasa Date: Fri, 13 Jun 2014 18:24:03 +0900 Subject: [PATCH 20/20] Added missing option strings commands. --- src/command_dynamic.cc | 12 ++++++++++++ src/command_groups.cc | 6 ------ src/command_ip.cc | 3 --- src/command_network.cc | 3 --- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/command_dynamic.cc b/src/command_dynamic.cc index 6c600d09..e72291a8 100644 --- a/src/command_dynamic.cc +++ b/src/command_dynamic.cc @@ -38,6 +38,7 @@ #include #include +#include #include "globals.h" #include "control.h" @@ -468,4 +469,15 @@ initialize_command_dynamic() { CMD2_ANY_STRING_V("method.rlookup.clear", tr1::bind(&rpc::object_storage::rlookup_clear, control->object_storage(), tr1::placeholders::_2)); CMD2_ANY ("catch", tr1::bind(&cmd_catch, tr1::placeholders::_1, tr1::placeholders::_2)); + + CMD2_ANY ("strings.choke_heuristics", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS)); + CMD2_ANY ("strings.choke_heuristics.upload", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_UPLOAD)); + CMD2_ANY ("strings.choke_heuristics.download", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_DOWNLOAD)); + CMD2_ANY ("strings.connection_type", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CONNECTION_TYPE)); + CMD2_ANY ("strings.encryption", tr1::bind(&torrent::option_list_strings, torrent::OPTION_ENCRYPTION)); + CMD2_ANY ("strings.ip_filter", tr1::bind(&torrent::option_list_strings, torrent::OPTION_IP_FILTER)); + CMD2_ANY ("strings.ip_tos", tr1::bind(&torrent::option_list_strings, torrent::OPTION_IP_TOS)); + CMD2_ANY ("strings.log_group", tr1::bind(&torrent::option_list_strings, torrent::OPTION_LOG_GROUP)); + CMD2_ANY ("strings.tracker_event", tr1::bind(&torrent::option_list_strings, torrent::OPTION_TRACKER_EVENT)); + CMD2_ANY ("strings.tracker_mode", tr1::bind(&torrent::option_list_strings, torrent::OPTION_TRACKER_MODE)); } diff --git a/src/command_groups.cc b/src/command_groups.cc index bb15e9b0..45a46138 100644 --- a/src/command_groups.cc +++ b/src/command_groups.cc @@ -335,12 +335,6 @@ options. void initialize_command_groups() { - // Move somewhere else? - CMD2_ANY ("strings.choke_heuristics", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS)); - CMD2_ANY ("strings.choke_heuristics.upload", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_UPLOAD)); - CMD2_ANY ("strings.choke_heuristics.download", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_DOWNLOAD)); - CMD2_ANY ("strings.tracker_mode", tr1::bind(&torrent::option_list_strings, torrent::OPTION_TRACKER_MODE)); - CMD2_ANY ("choke_group.list", tr1::bind(&apply_cg_list)); CMD2_ANY_STRING ("choke_group.insert", tr1::bind(&apply_cg_insert, tr1::placeholders::_2)); diff --git a/src/command_ip.cc b/src/command_ip.cc index 13216f5f..2af85644 100644 --- a/src/command_ip.cc +++ b/src/command_ip.cc @@ -281,9 +281,6 @@ apply_ipv4_filter_dump() { void initialize_command_ip() { - CMD2_ANY ("strings.ip_filter", tr1::bind(&torrent::option_list_strings, torrent::OPTION_IP_FILTER)); - CMD2_ANY ("strings.ip_tos", tr1::bind(&torrent::option_list_strings, torrent::OPTION_IP_TOS)); - CMD2_ANY_STRING ("ip_tables.insert_table", tr1::bind(&apply_ip_tables_insert_table, tr1::placeholders::_2)); CMD2_ANY_STRING ("ip_tables.size_data", tr1::bind(&apply_ip_tables_size_data, tr1::placeholders::_2)); CMD2_ANY_LIST ("ip_tables.get", tr1::bind(&apply_ip_tables_get, tr1::placeholders::_2)); diff --git a/src/command_network.cc b/src/command_network.cc index b34c1865..471362b6 100644 --- a/src/command_network.cc +++ b/src/command_network.cc @@ -238,9 +238,6 @@ initialize_command_network() { torrent::FileManager* fileManager = torrent::file_manager(); core::CurlStack* httpStack = control->core()->http_stack(); - CMD2_ANY ("strings.connection_type", tr1::bind(&torrent::option_list_strings, torrent::OPTION_CONNECTION_TYPE)); - CMD2_ANY ("strings.encryption", tr1::bind(&torrent::option_list_strings, torrent::OPTION_ENCRYPTION)); - // CMD2_ANY_STRING ("encoding_list", tr1::bind(&apply_encoding_list, tr1::placeholders::_2)); CMD2_ANY_STRING ("encoding.add", tr1::bind(&apply_encoding_list, tr1::placeholders::_2));