fixes in DHT to make it work when the number of transaction slots are full (very rare case). Added a feature to (optionally) resolve the countries of peers and updated the docs (see peer_info::country).
This commit is contained in:
276
docs/manual.html
276
docs/manual.html
@@ -24,143 +24,144 @@
|
||||
<div class="contents topic" id="table-of-contents">
|
||||
<p class="topic-title first"><a name="table-of-contents">Table of contents</a></p>
|
||||
<ul class="simple">
|
||||
<li><a class="reference" href="#overview" id="id15" name="id15">overview</a></li>
|
||||
<li><a class="reference" href="#primitive-network-types" id="id16" name="id16">primitive network types</a></li>
|
||||
<li><a class="reference" href="#session" id="id17" name="id17">session</a><ul>
|
||||
<li><a class="reference" href="#id1" id="id18" name="id18">session()</a></li>
|
||||
<li><a class="reference" href="#id2" id="id19" name="id19">~session()</a></li>
|
||||
<li><a class="reference" href="#abort" id="id20" name="id20">abort()</a></li>
|
||||
<li><a class="reference" href="#add-torrent" id="id21" name="id21">add_torrent()</a></li>
|
||||
<li><a class="reference" href="#remove-torrent-find-torrent-get-torrents" id="id22" name="id22">remove_torrent() find_torrent() get_torrents()</a></li>
|
||||
<li><a class="reference" href="#set-upload-rate-limit-set-download-rate-limit-upload-rate-limit-download-rate-limit" id="id23" name="id23">set_upload_rate_limit() set_download_rate_limit() upload_rate_limit() download_rate_limit()</a></li>
|
||||
<li><a class="reference" href="#set-max-uploads-set-max-connections" id="id24" name="id24">set_max_uploads() set_max_connections()</a></li>
|
||||
<li><a class="reference" href="#num-uploads-num-connections" id="id25" name="id25">num_uploads() num_connections()</a></li>
|
||||
<li><a class="reference" href="#set-max-half-open-connections" id="id26" name="id26">set_max_half_open_connections()</a></li>
|
||||
<li><a class="reference" href="#set-ip-filter" id="id27" name="id27">set_ip_filter()</a></li>
|
||||
<li><a class="reference" href="#status" id="id28" name="id28">status()</a></li>
|
||||
<li><a class="reference" href="#is-listening-listen-port-listen-on" id="id29" name="id29">is_listening() listen_port() listen_on()</a></li>
|
||||
<li><a class="reference" href="#pop-alert-set-severity-level" id="id30" name="id30">pop_alert() set_severity_level()</a></li>
|
||||
<li><a class="reference" href="#add-extension" id="id31" name="id31">add_extension()</a></li>
|
||||
<li><a class="reference" href="#start-dht-stop-dht-set-dht-settings-dht-state" id="id32" name="id32">start_dht() stop_dht() set_dht_settings() dht_state()</a></li>
|
||||
<li><a class="reference" href="#add-dht-node-add-dht-router" id="id33" name="id33">add_dht_node() add_dht_router()</a></li>
|
||||
<li><a class="reference" href="#overview" id="id16" name="id16">overview</a></li>
|
||||
<li><a class="reference" href="#primitive-network-types" id="id17" name="id17">primitive network types</a></li>
|
||||
<li><a class="reference" href="#session" id="id18" name="id18">session</a><ul>
|
||||
<li><a class="reference" href="#id1" id="id19" name="id19">session()</a></li>
|
||||
<li><a class="reference" href="#id2" id="id20" name="id20">~session()</a></li>
|
||||
<li><a class="reference" href="#abort" id="id21" name="id21">abort()</a></li>
|
||||
<li><a class="reference" href="#add-torrent" id="id22" name="id22">add_torrent()</a></li>
|
||||
<li><a class="reference" href="#remove-torrent-find-torrent-get-torrents" id="id23" name="id23">remove_torrent() find_torrent() get_torrents()</a></li>
|
||||
<li><a class="reference" href="#set-upload-rate-limit-set-download-rate-limit-upload-rate-limit-download-rate-limit" id="id24" name="id24">set_upload_rate_limit() set_download_rate_limit() upload_rate_limit() download_rate_limit()</a></li>
|
||||
<li><a class="reference" href="#set-max-uploads-set-max-connections" id="id25" name="id25">set_max_uploads() set_max_connections()</a></li>
|
||||
<li><a class="reference" href="#num-uploads-num-connections" id="id26" name="id26">num_uploads() num_connections()</a></li>
|
||||
<li><a class="reference" href="#set-max-half-open-connections" id="id27" name="id27">set_max_half_open_connections()</a></li>
|
||||
<li><a class="reference" href="#set-ip-filter" id="id28" name="id28">set_ip_filter()</a></li>
|
||||
<li><a class="reference" href="#status" id="id29" name="id29">status()</a></li>
|
||||
<li><a class="reference" href="#is-listening-listen-port-listen-on" id="id30" name="id30">is_listening() listen_port() listen_on()</a></li>
|
||||
<li><a class="reference" href="#pop-alert-set-severity-level" id="id31" name="id31">pop_alert() set_severity_level()</a></li>
|
||||
<li><a class="reference" href="#add-extension" id="id32" name="id32">add_extension()</a></li>
|
||||
<li><a class="reference" href="#start-dht-stop-dht-set-dht-settings-dht-state" id="id33" name="id33">start_dht() stop_dht() set_dht_settings() dht_state()</a></li>
|
||||
<li><a class="reference" href="#add-dht-node-add-dht-router" id="id34" name="id34">add_dht_node() add_dht_router()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#entry" id="id34" name="id34">entry</a><ul>
|
||||
<li><a class="reference" href="#integer-string-list-dict-type" id="id35" name="id35">integer() string() list() dict() type()</a></li>
|
||||
<li><a class="reference" href="#operator" id="id36" name="id36">operator[]</a></li>
|
||||
<li><a class="reference" href="#find-key" id="id37" name="id37">find_key()</a></li>
|
||||
<li><a class="reference" href="#entry" id="id35" name="id35">entry</a><ul>
|
||||
<li><a class="reference" href="#integer-string-list-dict-type" id="id36" name="id36">integer() string() list() dict() type()</a></li>
|
||||
<li><a class="reference" href="#operator" id="id37" name="id37">operator[]</a></li>
|
||||
<li><a class="reference" href="#find-key" id="id38" name="id38">find_key()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#torrent-info" id="id38" name="id38">torrent_info</a><ul>
|
||||
<li><a class="reference" href="#id3" id="id39" name="id39">torrent_info()</a></li>
|
||||
<li><a class="reference" href="#set-comment-set-piece-size-set-creator-set-hash-add-tracker-add-file" id="id40" name="id40">set_comment() set_piece_size() set_creator() set_hash() add_tracker() add_file()</a></li>
|
||||
<li><a class="reference" href="#create-torrent" id="id41" name="id41">create_torrent()</a></li>
|
||||
<li><a class="reference" href="#begin-files-end-files-rbegin-files-rend-files" id="id42" name="id42">begin_files() end_files() rbegin_files() rend_files()</a></li>
|
||||
<li><a class="reference" href="#num-files-file-at" id="id43" name="id43">num_files() file_at()</a></li>
|
||||
<li><a class="reference" href="#map-block" id="id44" name="id44">map_block()</a></li>
|
||||
<li><a class="reference" href="#map-file" id="id45" name="id45">map_file()</a></li>
|
||||
<li><a class="reference" href="#url-seeds" id="id46" name="id46">url_seeds()</a></li>
|
||||
<li><a class="reference" href="#print" id="id47" name="id47">print()</a></li>
|
||||
<li><a class="reference" href="#trackers" id="id48" name="id48">trackers()</a></li>
|
||||
<li><a class="reference" href="#total-size-piece-length-piece-size-num-pieces" id="id49" name="id49">total_size() piece_length() piece_size() num_pieces()</a></li>
|
||||
<li><a class="reference" href="#hash-for-piece-info-hash" id="id50" name="id50">hash_for_piece() info_hash()</a></li>
|
||||
<li><a class="reference" href="#name-comment-creation-date-creator" id="id51" name="id51">name() comment() creation_date() creator()</a></li>
|
||||
<li><a class="reference" href="#priv-set-priv" id="id52" name="id52">priv() set_priv()</a></li>
|
||||
<li><a class="reference" href="#nodes" id="id53" name="id53">nodes()</a></li>
|
||||
<li><a class="reference" href="#add-node" id="id54" name="id54">add_node()</a></li>
|
||||
<li><a class="reference" href="#torrent-info" id="id39" name="id39">torrent_info</a><ul>
|
||||
<li><a class="reference" href="#id3" id="id40" name="id40">torrent_info()</a></li>
|
||||
<li><a class="reference" href="#set-comment-set-piece-size-set-creator-set-hash-add-tracker-add-file" id="id41" name="id41">set_comment() set_piece_size() set_creator() set_hash() add_tracker() add_file()</a></li>
|
||||
<li><a class="reference" href="#create-torrent" id="id42" name="id42">create_torrent()</a></li>
|
||||
<li><a class="reference" href="#begin-files-end-files-rbegin-files-rend-files" id="id43" name="id43">begin_files() end_files() rbegin_files() rend_files()</a></li>
|
||||
<li><a class="reference" href="#num-files-file-at" id="id44" name="id44">num_files() file_at()</a></li>
|
||||
<li><a class="reference" href="#map-block" id="id45" name="id45">map_block()</a></li>
|
||||
<li><a class="reference" href="#map-file" id="id46" name="id46">map_file()</a></li>
|
||||
<li><a class="reference" href="#url-seeds" id="id47" name="id47">url_seeds()</a></li>
|
||||
<li><a class="reference" href="#print" id="id48" name="id48">print()</a></li>
|
||||
<li><a class="reference" href="#trackers" id="id49" name="id49">trackers()</a></li>
|
||||
<li><a class="reference" href="#total-size-piece-length-piece-size-num-pieces" id="id50" name="id50">total_size() piece_length() piece_size() num_pieces()</a></li>
|
||||
<li><a class="reference" href="#hash-for-piece-info-hash" id="id51" name="id51">hash_for_piece() info_hash()</a></li>
|
||||
<li><a class="reference" href="#name-comment-creation-date-creator" id="id52" name="id52">name() comment() creation_date() creator()</a></li>
|
||||
<li><a class="reference" href="#priv-set-priv" id="id53" name="id53">priv() set_priv()</a></li>
|
||||
<li><a class="reference" href="#nodes" id="id54" name="id54">nodes()</a></li>
|
||||
<li><a class="reference" href="#add-node" id="id55" name="id55">add_node()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#torrent-handle" id="id55" name="id55">torrent_handle</a><ul>
|
||||
<li><a class="reference" href="#file-progress" id="id56" name="id56">file_progress()</a></li>
|
||||
<li><a class="reference" href="#save-path" id="id57" name="id57">save_path()</a></li>
|
||||
<li><a class="reference" href="#move-storage" id="id58" name="id58">move_storage()</a></li>
|
||||
<li><a class="reference" href="#force-reannounce" id="id59" name="id59">force_reannounce()</a></li>
|
||||
<li><a class="reference" href="#connect-peer" id="id60" name="id60">connect_peer()</a></li>
|
||||
<li><a class="reference" href="#name" id="id61" name="id61">name()</a></li>
|
||||
<li><a class="reference" href="#set-ratio" id="id62" name="id62">set_ratio()</a></li>
|
||||
<li><a class="reference" href="#set-upload-limit-set-download-limit" id="id63" name="id63">set_upload_limit() set_download_limit()</a></li>
|
||||
<li><a class="reference" href="#set-sequenced-download-threshold" id="id64" name="id64">set_sequenced_download_threshold()</a></li>
|
||||
<li><a class="reference" href="#set-peer-upload-limit-set-peer-download-limit" id="id65" name="id65">set_peer_upload_limit() set_peer_download_limit()</a></li>
|
||||
<li><a class="reference" href="#pause-resume-is-paused" id="id66" name="id66">pause() resume() is_paused()</a></li>
|
||||
<li><a class="reference" href="#is-seed" id="id67" name="id67">is_seed()</a></li>
|
||||
<li><a class="reference" href="#has-metadata" id="id68" name="id68">has_metadata()</a></li>
|
||||
<li><a class="reference" href="#set-tracker-login" id="id69" name="id69">set_tracker_login()</a></li>
|
||||
<li><a class="reference" href="#trackers-replace-trackers" id="id70" name="id70">trackers() replace_trackers()</a></li>
|
||||
<li><a class="reference" href="#add-url-seed" id="id71" name="id71">add_url_seed()</a></li>
|
||||
<li><a class="reference" href="#use-interface" id="id72" name="id72">use_interface()</a></li>
|
||||
<li><a class="reference" href="#info-hash" id="id73" name="id73">info_hash()</a></li>
|
||||
<li><a class="reference" href="#id5" id="id74" name="id74">set_max_uploads() set_max_connections()</a></li>
|
||||
<li><a class="reference" href="#write-resume-data" id="id75" name="id75">write_resume_data()</a></li>
|
||||
<li><a class="reference" href="#id6" id="id76" name="id76">status()</a></li>
|
||||
<li><a class="reference" href="#get-download-queue" id="id77" name="id77">get_download_queue()</a></li>
|
||||
<li><a class="reference" href="#get-peer-info" id="id78" name="id78">get_peer_info()</a></li>
|
||||
<li><a class="reference" href="#get-torrent-info" id="id79" name="id79">get_torrent_info()</a></li>
|
||||
<li><a class="reference" href="#is-valid" id="id80" name="id80">is_valid()</a></li>
|
||||
<li><a class="reference" href="#torrent-handle" id="id56" name="id56">torrent_handle</a><ul>
|
||||
<li><a class="reference" href="#file-progress" id="id57" name="id57">file_progress()</a></li>
|
||||
<li><a class="reference" href="#save-path" id="id58" name="id58">save_path()</a></li>
|
||||
<li><a class="reference" href="#move-storage" id="id59" name="id59">move_storage()</a></li>
|
||||
<li><a class="reference" href="#force-reannounce" id="id60" name="id60">force_reannounce()</a></li>
|
||||
<li><a class="reference" href="#connect-peer" id="id61" name="id61">connect_peer()</a></li>
|
||||
<li><a class="reference" href="#name" id="id62" name="id62">name()</a></li>
|
||||
<li><a class="reference" href="#set-ratio" id="id63" name="id63">set_ratio()</a></li>
|
||||
<li><a class="reference" href="#set-upload-limit-set-download-limit" id="id64" name="id64">set_upload_limit() set_download_limit()</a></li>
|
||||
<li><a class="reference" href="#set-sequenced-download-threshold" id="id65" name="id65">set_sequenced_download_threshold()</a></li>
|
||||
<li><a class="reference" href="#set-peer-upload-limit-set-peer-download-limit" id="id66" name="id66">set_peer_upload_limit() set_peer_download_limit()</a></li>
|
||||
<li><a class="reference" href="#pause-resume-is-paused" id="id67" name="id67">pause() resume() is_paused()</a></li>
|
||||
<li><a class="reference" href="#resolve-countries" id="id68" name="id68">resolve_countries()</a></li>
|
||||
<li><a class="reference" href="#is-seed" id="id69" name="id69">is_seed()</a></li>
|
||||
<li><a class="reference" href="#has-metadata" id="id70" name="id70">has_metadata()</a></li>
|
||||
<li><a class="reference" href="#set-tracker-login" id="id71" name="id71">set_tracker_login()</a></li>
|
||||
<li><a class="reference" href="#trackers-replace-trackers" id="id72" name="id72">trackers() replace_trackers()</a></li>
|
||||
<li><a class="reference" href="#add-url-seed" id="id73" name="id73">add_url_seed()</a></li>
|
||||
<li><a class="reference" href="#use-interface" id="id74" name="id74">use_interface()</a></li>
|
||||
<li><a class="reference" href="#info-hash" id="id75" name="id75">info_hash()</a></li>
|
||||
<li><a class="reference" href="#id5" id="id76" name="id76">set_max_uploads() set_max_connections()</a></li>
|
||||
<li><a class="reference" href="#write-resume-data" id="id77" name="id77">write_resume_data()</a></li>
|
||||
<li><a class="reference" href="#id6" id="id78" name="id78">status()</a></li>
|
||||
<li><a class="reference" href="#get-download-queue" id="id79" name="id79">get_download_queue()</a></li>
|
||||
<li><a class="reference" href="#get-peer-info" id="id80" name="id80">get_peer_info()</a></li>
|
||||
<li><a class="reference" href="#get-torrent-info" id="id81" name="id81">get_torrent_info()</a></li>
|
||||
<li><a class="reference" href="#is-valid" id="id82" name="id82">is_valid()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#torrent-status" id="id81" name="id81">torrent_status</a></li>
|
||||
<li><a class="reference" href="#peer-info" id="id82" name="id82">peer_info</a></li>
|
||||
<li><a class="reference" href="#session-settings" id="id83" name="id83">session_settings</a></li>
|
||||
<li><a class="reference" href="#ip-filter" id="id84" name="id84">ip_filter</a><ul>
|
||||
<li><a class="reference" href="#id8" id="id85" name="id85">ip_filter()</a></li>
|
||||
<li><a class="reference" href="#add-rule" id="id86" name="id86">add_rule()</a></li>
|
||||
<li><a class="reference" href="#access" id="id87" name="id87">access()</a></li>
|
||||
<li><a class="reference" href="#export-filter" id="id88" name="id88">export_filter()</a></li>
|
||||
<li><a class="reference" href="#torrent-status" id="id83" name="id83">torrent_status</a></li>
|
||||
<li><a class="reference" href="#peer-info" id="id84" name="id84">peer_info</a></li>
|
||||
<li><a class="reference" href="#session-settings" id="id85" name="id85">session_settings</a></li>
|
||||
<li><a class="reference" href="#ip-filter" id="id86" name="id86">ip_filter</a><ul>
|
||||
<li><a class="reference" href="#id9" id="id87" name="id87">ip_filter()</a></li>
|
||||
<li><a class="reference" href="#add-rule" id="id88" name="id88">add_rule()</a></li>
|
||||
<li><a class="reference" href="#access" id="id89" name="id89">access()</a></li>
|
||||
<li><a class="reference" href="#export-filter" id="id90" name="id90">export_filter()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#big-number" id="id89" name="id89">big_number</a></li>
|
||||
<li><a class="reference" href="#hasher" id="id90" name="id90">hasher</a></li>
|
||||
<li><a class="reference" href="#fingerprint" id="id91" name="id91">fingerprint</a></li>
|
||||
<li><a class="reference" href="#free-functions" id="id92" name="id92">free functions</a><ul>
|
||||
<li><a class="reference" href="#identify-client" id="id93" name="id93">identify_client()</a></li>
|
||||
<li><a class="reference" href="#client-fingerprint" id="id94" name="id94">client_fingerprint()</a></li>
|
||||
<li><a class="reference" href="#bdecode-bencode" id="id95" name="id95">bdecode() bencode()</a></li>
|
||||
<li><a class="reference" href="#big-number" id="id91" name="id91">big_number</a></li>
|
||||
<li><a class="reference" href="#hasher" id="id92" name="id92">hasher</a></li>
|
||||
<li><a class="reference" href="#fingerprint" id="id93" name="id93">fingerprint</a></li>
|
||||
<li><a class="reference" href="#free-functions" id="id94" name="id94">free functions</a><ul>
|
||||
<li><a class="reference" href="#identify-client" id="id95" name="id95">identify_client()</a></li>
|
||||
<li><a class="reference" href="#client-fingerprint" id="id96" name="id96">client_fingerprint()</a></li>
|
||||
<li><a class="reference" href="#bdecode-bencode" id="id97" name="id97">bdecode() bencode()</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#alerts" id="id96" name="id96">alerts</a><ul>
|
||||
<li><a class="reference" href="#listen-failed-alert" id="id97" name="id97">listen_failed_alert</a></li>
|
||||
<li><a class="reference" href="#file-error-alert" id="id98" name="id98">file_error_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-announce-alert" id="id99" name="id99">tracker_announce_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-alert" id="id100" name="id100">tracker_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-reply-alert" id="id101" name="id101">tracker_reply_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-warning-alert" id="id102" name="id102">tracker_warning_alert</a></li>
|
||||
<li><a class="reference" href="#url-seed-alert" id="id103" name="id103">url_seed_alert</a></li>
|
||||
<li><a class="reference" href="#hash-failed-alert" id="id104" name="id104">hash_failed_alert</a></li>
|
||||
<li><a class="reference" href="#peer-ban-alert" id="id105" name="id105">peer_ban_alert</a></li>
|
||||
<li><a class="reference" href="#peer-error-alert" id="id106" name="id106">peer_error_alert</a></li>
|
||||
<li><a class="reference" href="#invalid-request-alert" id="id107" name="id107">invalid_request_alert</a></li>
|
||||
<li><a class="reference" href="#torrent-finished-alert" id="id108" name="id108">torrent_finished_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-failed-alert" id="id109" name="id109">metadata_failed_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-received-alert" id="id110" name="id110">metadata_received_alert</a></li>
|
||||
<li><a class="reference" href="#fastresume-rejected-alert" id="id111" name="id111">fastresume_rejected_alert</a></li>
|
||||
<li><a class="reference" href="#dispatcher" id="id112" name="id112">dispatcher</a></li>
|
||||
<li><a class="reference" href="#alerts" id="id98" name="id98">alerts</a><ul>
|
||||
<li><a class="reference" href="#listen-failed-alert" id="id99" name="id99">listen_failed_alert</a></li>
|
||||
<li><a class="reference" href="#file-error-alert" id="id100" name="id100">file_error_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-announce-alert" id="id101" name="id101">tracker_announce_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-alert" id="id102" name="id102">tracker_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-reply-alert" id="id103" name="id103">tracker_reply_alert</a></li>
|
||||
<li><a class="reference" href="#tracker-warning-alert" id="id104" name="id104">tracker_warning_alert</a></li>
|
||||
<li><a class="reference" href="#url-seed-alert" id="id105" name="id105">url_seed_alert</a></li>
|
||||
<li><a class="reference" href="#hash-failed-alert" id="id106" name="id106">hash_failed_alert</a></li>
|
||||
<li><a class="reference" href="#peer-ban-alert" id="id107" name="id107">peer_ban_alert</a></li>
|
||||
<li><a class="reference" href="#peer-error-alert" id="id108" name="id108">peer_error_alert</a></li>
|
||||
<li><a class="reference" href="#invalid-request-alert" id="id109" name="id109">invalid_request_alert</a></li>
|
||||
<li><a class="reference" href="#torrent-finished-alert" id="id110" name="id110">torrent_finished_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-failed-alert" id="id111" name="id111">metadata_failed_alert</a></li>
|
||||
<li><a class="reference" href="#metadata-received-alert" id="id112" name="id112">metadata_received_alert</a></li>
|
||||
<li><a class="reference" href="#fastresume-rejected-alert" id="id113" name="id113">fastresume_rejected_alert</a></li>
|
||||
<li><a class="reference" href="#dispatcher" id="id114" name="id114">dispatcher</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#exceptions" id="id113" name="id113">exceptions</a><ul>
|
||||
<li><a class="reference" href="#invalid-handle" id="id114" name="id114">invalid_handle</a></li>
|
||||
<li><a class="reference" href="#duplicate-torrent" id="id115" name="id115">duplicate_torrent</a></li>
|
||||
<li><a class="reference" href="#invalid-encoding" id="id116" name="id116">invalid_encoding</a></li>
|
||||
<li><a class="reference" href="#type-error" id="id117" name="id117">type_error</a></li>
|
||||
<li><a class="reference" href="#invalid-torrent-file" id="id118" name="id118">invalid_torrent_file</a></li>
|
||||
<li><a class="reference" href="#exceptions" id="id115" name="id115">exceptions</a><ul>
|
||||
<li><a class="reference" href="#invalid-handle" id="id116" name="id116">invalid_handle</a></li>
|
||||
<li><a class="reference" href="#duplicate-torrent" id="id117" name="id117">duplicate_torrent</a></li>
|
||||
<li><a class="reference" href="#invalid-encoding" id="id118" name="id118">invalid_encoding</a></li>
|
||||
<li><a class="reference" href="#type-error" id="id119" name="id119">type_error</a></li>
|
||||
<li><a class="reference" href="#invalid-torrent-file" id="id120" name="id120">invalid_torrent_file</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#fast-resume" id="id119" name="id119">fast resume</a><ul>
|
||||
<li><a class="reference" href="#file-format" id="id120" name="id120">file format</a></li>
|
||||
<li><a class="reference" href="#fast-resume" id="id121" name="id121">fast resume</a><ul>
|
||||
<li><a class="reference" href="#file-format" id="id122" name="id122">file format</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#threads" id="id121" name="id121">threads</a></li>
|
||||
<li><a class="reference" href="#storage-allocation" id="id122" name="id122">storage allocation</a><ul>
|
||||
<li><a class="reference" href="#full-allocation" id="id123" name="id123">full allocation</a></li>
|
||||
<li><a class="reference" href="#compact-allocation" id="id124" name="id124">compact allocation</a></li>
|
||||
<li><a class="reference" href="#threads" id="id123" name="id123">threads</a></li>
|
||||
<li><a class="reference" href="#storage-allocation" id="id124" name="id124">storage allocation</a><ul>
|
||||
<li><a class="reference" href="#full-allocation" id="id125" name="id125">full allocation</a></li>
|
||||
<li><a class="reference" href="#compact-allocation" id="id126" name="id126">compact allocation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#extensions" id="id125" name="id125">extensions</a><ul>
|
||||
<li><a class="reference" href="#metadata-from-peers" id="id126" name="id126">metadata from peers</a></li>
|
||||
<li><a class="reference" href="#http-seeding" id="id127" name="id127">HTTP seeding</a></li>
|
||||
<li><a class="reference" href="#extensions" id="id127" name="id127">extensions</a><ul>
|
||||
<li><a class="reference" href="#metadata-from-peers" id="id128" name="id128">metadata from peers</a></li>
|
||||
<li><a class="reference" href="#http-seeding" id="id129" name="id129">HTTP seeding</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference" href="#filename-checks" id="id128" name="id128">filename checks</a></li>
|
||||
<li><a class="reference" href="#acknowledgments" id="id129" name="id129">acknowledgments</a></li>
|
||||
<li><a class="reference" href="#filename-checks" id="id130" name="id130">filename checks</a></li>
|
||||
<li><a class="reference" href="#acknowledgments" id="id131" name="id131">acknowledgments</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section">
|
||||
@@ -1247,6 +1248,9 @@ struct torrent_handle
|
||||
bool is_paused() const;
|
||||
bool is_seed() const;
|
||||
|
||||
void resolve_countries(bool r);
|
||||
bool resolve_countries() const;
|
||||
|
||||
void filter_piece(int index, bool filter) const;
|
||||
void filter_pieces(std::vector<bool> const& bitmask) const;
|
||||
bool is_piece_filtered(int index) const;
|
||||
@@ -1423,6 +1427,19 @@ is currently paused. Torrents may be paused automatically if there is a file err
|
||||
or something similar. See <a class="reference" href="#file-error-alert">file_error_alert</a>.</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h2><a id="resolve-countries" name="resolve-countries">resolve_countries()</a></h2>
|
||||
<blockquote>
|
||||
<pre class="literal-block">
|
||||
void resolve_countries(bool r);
|
||||
bool resolve_countries() const;
|
||||
</pre>
|
||||
</blockquote>
|
||||
<p>Sets or gets the flag that derermines if countries should be resolved for the peers of this
|
||||
torrent. It defaults to false. If it is set to true, the <a class="reference" href="#peer-info">peer_info</a> structure for the peers
|
||||
in this torrent will have their <tt class="docutils literal"><span class="pre">country</span></tt> member set. See <a class="reference" href="#peer-info">peer_info</a> for more information
|
||||
on how to interpret this field.</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h2><a id="is-seed" name="is-seed">is_seed()</a></h2>
|
||||
<blockquote>
|
||||
<pre class="literal-block">
|
||||
@@ -1837,6 +1854,8 @@ struct peer_info
|
||||
int upload_limit;
|
||||
int download_limit;
|
||||
|
||||
char country[2];
|
||||
|
||||
size_type load_balancing;
|
||||
|
||||
int download_queue_length;
|
||||
@@ -1925,6 +1944,12 @@ peer every second. It may be -1 if there's no local limit on the peer. The globa
|
||||
limit and the torrent limit is always enforced anyway.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">download_limit</span></tt> is the number of bytes per second this peer is allowed to
|
||||
receive. -1 means it's unlimited.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">country</span></tt> is the two letter <a class="reference" href="http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">ISO 3166 country code</a> for the country the peer
|
||||
is connected from. If the country hasn't been resolved yet, both chars are set
|
||||
to 0. If the resolution failed for some reason, the field is set to "--". If the
|
||||
resolution service returns an invalid country code, it is set to "!!".
|
||||
The <tt class="docutils literal"><span class="pre">countries.nerd.dk</span></tt> service is used to look up countries. This field will
|
||||
remain set to 0 unless the torrent is set to resolve countries, see <a class="reference" href="#resolve-countries">resolve_countries()</a>.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">load_balancing</span></tt> is a measurement of the balancing of free download (that we get)
|
||||
and free upload that we give. Every peer gets a certain amount of free upload, but
|
||||
this member says how much <em>extra</em> free upload this peer has got. If it is a negative
|
||||
@@ -2088,7 +2113,7 @@ public:
|
||||
</pre>
|
||||
</blockquote>
|
||||
<div class="section">
|
||||
<h2><a id="id8" name="id8">ip_filter()</a></h2>
|
||||
<h2><a id="id9" name="id9">ip_filter()</a></h2>
|
||||
<blockquote>
|
||||
<pre class="literal-block">
|
||||
ip_filter()
|
||||
@@ -2975,25 +3000,6 @@ length-prefix, message-id nor extension-id).</p>
|
||||
handshake, it may be incompatible with future versions of the mainline
|
||||
bittorrent client.</p>
|
||||
<p>These are the extensions that are currently implemented.</p>
|
||||
<!-- chat messages
|
||||
- - - - - - - - - - - - -
|
||||
|
||||
Extension name: "chat"
|
||||
|
||||
The payload in the packet is a bencoded dictionary with any
|
||||
combination of the following entries:
|
||||
|
||||
+- - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
|
||||
| "msg" | This is a string that contains a message that |
|
||||
| | should be displayed to the user. |
|
||||
+- - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
|
||||
| "ctrl" | This is a control string that can tell a client that |
|
||||
| | it is ignored (to make the user aware of that) and |
|
||||
| | it can also tell a client that it is no longer ignored.|
|
||||
| | These notifications are encoded as the strings: |
|
||||
| | "ignored" and "not ignored". |
|
||||
| | Any unrecognized strings should be ignored. |
|
||||
+- - - - - - - - - -+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ -->
|
||||
<div class="section">
|
||||
<h2><a id="metadata-from-peers" name="metadata-from-peers">metadata from peers</a></h2>
|
||||
<p>Extension name: "LT_metadata"</p>
|
||||
|
@@ -1194,6 +1194,9 @@ Its declaration looks like this::
|
||||
bool is_paused() const;
|
||||
bool is_seed() const;
|
||||
|
||||
void resolve_countries(bool r);
|
||||
bool resolve_countries() const;
|
||||
|
||||
void filter_piece(int index, bool filter) const;
|
||||
void filter_pieces(std::vector<bool> const& bitmask) const;
|
||||
bool is_piece_filtered(int index) const;
|
||||
@@ -1379,6 +1382,19 @@ all potential (not connected) peers. You can use ``is_paused()`` to determine if
|
||||
is currently paused. Torrents may be paused automatically if there is a file error (e.g. disk full)
|
||||
or something similar. See file_error_alert_.
|
||||
|
||||
resolve_countries()
|
||||
-------------------
|
||||
|
||||
::
|
||||
|
||||
void resolve_countries(bool r);
|
||||
bool resolve_countries() const;
|
||||
|
||||
Sets or gets the flag that derermines if countries should be resolved for the peers of this
|
||||
torrent. It defaults to false. If it is set to true, the peer_info_ structure for the peers
|
||||
in this torrent will have their ``country`` member set. See peer_info_ for more information
|
||||
on how to interpret this field.
|
||||
|
||||
is_seed()
|
||||
---------
|
||||
|
||||
@@ -1820,6 +1836,8 @@ It contains the following fields::
|
||||
int upload_limit;
|
||||
int download_limit;
|
||||
|
||||
char country[2];
|
||||
|
||||
size_type load_balancing;
|
||||
|
||||
int download_queue_length;
|
||||
@@ -1906,6 +1924,15 @@ limit and the torrent limit is always enforced anyway.
|
||||
``download_limit`` is the number of bytes per second this peer is allowed to
|
||||
receive. -1 means it's unlimited.
|
||||
|
||||
``country`` is the two letter `ISO 3166 country code`__ for the country the peer
|
||||
is connected from. If the country hasn't been resolved yet, both chars are set
|
||||
to 0. If the resolution failed for some reason, the field is set to "--". If the
|
||||
resolution service returns an invalid country code, it is set to "!!".
|
||||
The ``countries.nerd.dk`` service is used to look up countries. This field will
|
||||
remain set to 0 unless the torrent is set to resolve countries, see `resolve_countries()`_.
|
||||
|
||||
__ http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
|
||||
|
||||
``load_balancing`` is a measurement of the balancing of free download (that we get)
|
||||
and free upload that we give. Every peer gets a certain amount of free upload, but
|
||||
this member says how much *extra* free upload this peer has got. If it is a negative
|
||||
@@ -3066,26 +3093,6 @@ bittorrent client.
|
||||
|
||||
These are the extensions that are currently implemented.
|
||||
|
||||
.. chat messages
|
||||
-------------
|
||||
|
||||
Extension name: "chat"
|
||||
|
||||
The payload in the packet is a bencoded dictionary with any
|
||||
combination of the following entries:
|
||||
|
||||
+----------+--------------------------------------------------------+
|
||||
| "msg" | This is a string that contains a message that |
|
||||
| | should be displayed to the user. |
|
||||
+----------+--------------------------------------------------------+
|
||||
| "ctrl" | This is a control string that can tell a client that |
|
||||
| | it is ignored (to make the user aware of that) and |
|
||||
| | it can also tell a client that it is no longer ignored.|
|
||||
| | These notifications are encoded as the strings: |
|
||||
| | "ignored" and "not ignored". |
|
||||
| | Any unrecognized strings should be ignored. |
|
||||
+----------+--------------------------------------------------------+
|
||||
|
||||
metadata from peers
|
||||
-------------------
|
||||
|
||||
|
Reference in New Issue
Block a user