diff --git a/.gitignore b/.gitignore index ac4b2e72..0b481ea6 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,8 @@ libtool ltmain.sh missing stamp-h1 + +src/rtorrent scripts/libtool.m4 scripts/lt*.m4 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 diff --git a/doc/scripts/update_commands_0.9.sed b/doc/scripts/update_commands_0.9.sed new file mode 100644 index 00000000..03d3e092 --- /dev/null +++ b/doc/scripts/update_commands_0.9.sed @@ -0,0 +1,1180 @@ +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 +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 + +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 diff --git a/src/command_dynamic.cc b/src/command_dynamic.cc index 3433f7f4..ed6cedcf 100644 --- a/src/command_dynamic.cc +++ b/src/command_dynamic.cc @@ -38,6 +38,7 @@ #include #include +#include #include "globals.h" #include "control.h" @@ -438,7 +439,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", std::bind(&system_method_insert, std::placeholders::_2)); @@ -468,4 +469,15 @@ initialize_command_dynamic() { CMD2_ANY_STRING_V("method.rlookup.clear", std::bind(&rpc::object_storage::rlookup_clear, control->object_storage(), std::placeholders::_2)); CMD2_ANY ("catch", std::bind(&cmd_catch, std::placeholders::_1, std::placeholders::_2)); + + CMD2_ANY ("strings.choke_heuristics", std::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS)); + CMD2_ANY ("strings.choke_heuristics.upload", std::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_UPLOAD)); + CMD2_ANY ("strings.choke_heuristics.download", std::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_DOWNLOAD)); + CMD2_ANY ("strings.connection_type", std::bind(&torrent::option_list_strings, torrent::OPTION_CONNECTION_TYPE)); + CMD2_ANY ("strings.encryption", std::bind(&torrent::option_list_strings, torrent::OPTION_ENCRYPTION)); + CMD2_ANY ("strings.ip_filter", std::bind(&torrent::option_list_strings, torrent::OPTION_IP_FILTER)); + CMD2_ANY ("strings.ip_tos", std::bind(&torrent::option_list_strings, torrent::OPTION_IP_TOS)); + CMD2_ANY ("strings.log_group", std::bind(&torrent::option_list_strings, torrent::OPTION_LOG_GROUP)); + CMD2_ANY ("strings.tracker_event", std::bind(&torrent::option_list_strings, torrent::OPTION_TRACKER_EVENT)); + CMD2_ANY ("strings.tracker_mode", std::bind(&torrent::option_list_strings, torrent::OPTION_TRACKER_MODE)); } diff --git a/src/command_events.cc b/src/command_events.cc index d0e05e0f..0bf0314e 100644 --- a/src/command_events.cc +++ b/src/command_events.cc @@ -38,12 +38,14 @@ #include #include +#include #include #include #include #include #include #include +#include #include "core/download.h" #include "core/download_list.h" @@ -305,6 +307,28 @@ 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, + std::bind(&call_watch_command, command, std::placeholders::_1)); + return torrent::Object(); +} + void initialize_command_events() { CMD2_ANY_STRING ("on_ratio", std::bind(&apply_on_ratio, std::placeholders::_2)); @@ -334,4 +358,6 @@ initialize_command_events() { CMD2_ANY_LIST ("download_list", std::bind(&apply_download_list, std::placeholders::_2)); CMD2_ANY_LIST ("d.multicall2", std::bind(&d_multicall, std::placeholders::_2)); + + CMD2_ANY_LIST ("directory.watch.added", std::bind(&directory_watch_added, std::placeholders::_2)); } diff --git a/src/command_groups.cc b/src/command_groups.cc index 6440564a..359a532e 100644 --- a/src/command_groups.cc +++ b/src/command_groups.cc @@ -335,15 +335,9 @@ options. void initialize_command_groups() { - // Move somewhere else? - CMD2_ANY ("strings.choke_heuristics", std::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS)); - CMD2_ANY ("strings.choke_heuristics.upload", std::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_UPLOAD)); - CMD2_ANY ("strings.choke_heuristics.download", std::bind(&torrent::option_list_strings, torrent::OPTION_CHOKE_HEURISTICS_DOWNLOAD)); - CMD2_ANY ("strings.tracker_mode", std::bind(&torrent::option_list_strings, torrent::OPTION_TRACKER_MODE)); - CMD2_ANY ("choke_group.list", std::bind(&apply_cg_list)); CMD2_ANY_STRING ("choke_group.insert", std::bind(&apply_cg_insert, std::placeholders::_2)); - + #if USE_CHOKE_GROUP CMD2_ANY ("choke_group.size", std::bind(&torrent::ResourceManager::group_size, torrent::resource_manager())); CMD2_ANY_STRING ("choke_group.index_of", std::bind(&torrent::ResourceManager::group_index_of, torrent::resource_manager(), std::placeholders::_2)); diff --git a/src/command_ip.cc b/src/command_ip.cc index 6997f6e9..fec85081 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", std::bind(&torrent::option_list_strings, torrent::OPTION_IP_FILTER)); - CMD2_ANY ("strings.ip_tos", std::bind(&torrent::option_list_strings, torrent::OPTION_IP_TOS)); - CMD2_ANY_STRING ("ip_tables.insert_table", std::bind(&apply_ip_tables_insert_table, std::placeholders::_2)); CMD2_ANY_STRING ("ip_tables.size_data", std::bind(&apply_ip_tables_size_data, std::placeholders::_2)); CMD2_ANY_LIST ("ip_tables.get", std::bind(&apply_ip_tables_get, std::placeholders::_2)); diff --git a/src/command_network.cc b/src/command_network.cc index 207dc812..93af73bc 100644 --- a/src/command_network.cc +++ b/src/command_network.cc @@ -236,10 +236,6 @@ initialize_command_network() { torrent::FileManager* fileManager = torrent::file_manager(); core::CurlStack* httpStack = control->core()->http_stack(); - CMD2_ANY ("strings.connection_type", std::bind(&torrent::option_list_strings, torrent::OPTION_CONNECTION_TYPE)); - CMD2_ANY ("strings.encryption", std::bind(&torrent::option_list_strings, torrent::OPTION_ENCRYPTION)); - - // CMD2_ANY_STRING ("encoding_list", std::bind(&apply_encoding_list, std::placeholders::_2)); CMD2_ANY_STRING ("encoding.add", std::bind(&apply_encoding_list, std::placeholders::_2)); // Isn't port_open used? @@ -262,18 +258,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", std::bind(&core::CurlStack::http_capath, httpStack)); - CMD2_ANY_STRING_V("network.http.capath.set", std::bind(&core::CurlStack::set_http_capath, httpStack, std::placeholders::_2)); CMD2_ANY ("network.http.cacert", std::bind(&core::CurlStack::http_cacert, httpStack)); CMD2_ANY_STRING_V("network.http.cacert.set", std::bind(&core::CurlStack::set_http_cacert, httpStack, std::placeholders::_2)); - CMD2_ANY ("network.http.proxy_address", std::bind(&core::CurlStack::http_proxy, httpStack)); - CMD2_ANY_STRING_V("network.http.proxy_address.set", std::bind(&core::CurlStack::set_http_proxy, httpStack, std::placeholders::_2)); - CMD2_ANY ("network.http.max_open", std::bind(&core::CurlStack::max_active, httpStack)); - CMD2_ANY_VALUE_V ("network.http.max_open.set", std::bind(&core::CurlStack::set_max_active, httpStack, std::placeholders::_2)); - CMD2_ANY ("network.http.ssl_verify_peer", std::bind(&core::CurlStack::ssl_verify_peer, httpStack)); - CMD2_ANY_VALUE_V ("network.http.ssl_verify_peer.set", std::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, std::placeholders::_2)); + CMD2_ANY ("network.http.capath", std::bind(&core::CurlStack::http_capath, httpStack)); + CMD2_ANY_STRING_V("network.http.capath.set", std::bind(&core::CurlStack::set_http_capath, httpStack, std::placeholders::_2)); CMD2_ANY ("network.http.dns_cache_timeout", std::bind(&core::CurlStack::dns_timeout, httpStack)); CMD2_ANY_VALUE_V ("network.http.dns_cache_timeout.set", std::bind(&core::CurlStack::set_dns_timeout, httpStack, std::placeholders::_2)); + CMD2_ANY ("network.http.max_open", std::bind(&core::CurlStack::max_active, httpStack)); + CMD2_ANY_VALUE_V ("network.http.max_open.set", std::bind(&core::CurlStack::set_max_active, httpStack, std::placeholders::_2)); + CMD2_ANY ("network.http.proxy_address", std::bind(&core::CurlStack::http_proxy, httpStack)); + CMD2_ANY_STRING_V("network.http.proxy_address.set", std::bind(&core::CurlStack::set_http_proxy, httpStack, std::placeholders::_2)); + CMD2_ANY ("network.http.ssl_verify_host", std::bind(&core::CurlStack::ssl_verify_host, httpStack)); + CMD2_ANY_VALUE_V ("network.http.ssl_verify_host.set", std::bind(&core::CurlStack::set_ssl_verify_host, httpStack, std::placeholders::_2)); + CMD2_ANY ("network.http.ssl_verify_peer", std::bind(&core::CurlStack::ssl_verify_peer, httpStack)); + CMD2_ANY_VALUE_V ("network.http.ssl_verify_peer.set", std::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, std::placeholders::_2)); CMD2_ANY ("network.send_buffer.size", std::bind(&torrent::ConnectionManager::send_buffer_size, cm)); CMD2_ANY_VALUE_V ("network.send_buffer.size.set", std::bind(&torrent::ConnectionManager::set_send_buffer_size, cm, std::placeholders::_2)); diff --git a/src/control.cc b/src/control.cc index ed60f5fb..fc1b61b6 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" @@ -67,6 +68,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), @@ -94,6 +96,7 @@ Control::~Control() { delete m_core; delete m_dhtManager; + delete m_directory_events; delete m_commandScheduler; delete m_objectStorage; } @@ -167,6 +170,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 681b6750..92a18893 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(); @@ -98,6 +102,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++; } @@ -117,8 +123,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; diff --git a/src/core/curl_stack.cc b/src/core/curl_stack.cc index a7988f89..e220fccf 100644 --- a/src/core/curl_stack.cc +++ b/src/core/curl_stack.cc @@ -51,6 +51,7 @@ 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) { @@ -180,7 +181,8 @@ 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); base_type::push_back(get); diff --git a/src/core/curl_stack.h b/src/core/curl_stack.h index 3b8b341b..ace12abd 100644 --- a/src/core/curl_stack.h +++ b/src/core/curl_stack.h @@ -100,7 +100,9 @@ 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; } @@ -140,6 +142,7 @@ 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; }; diff --git a/src/main.cc b/src/main.cc index 8ad7af34..5f4e2c33 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."); } @@ -394,11 +394,26 @@ 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"); + 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) { @@ -556,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"); @@ -634,7 +645,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 +819,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 +1002,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; 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();