regenerated html

This commit is contained in:
Arvid Norberg 2011-03-13 18:18:41 +00:00
parent c0253d9977
commit e7d86a7402
2 changed files with 269 additions and 169 deletions

View File

@ -452,6 +452,29 @@ upload and download rate.</li>
</ul>
</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">iconv</span></tt></td>
<td><ul class="first last simple">
<li><tt class="docutils literal"><span class="pre">auto</span></tt> - use iconv for string conversions for
linux and mingw and other posix platforms.</li>
<li><tt class="docutils literal"><span class="pre">on</span></tt> - force use of iconv</li>
<li><tt class="docutils literal"><span class="pre">off</span></tt> - force not using iconv (disables locale
awareness except on windows).</li>
</ul>
</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">asserts</span></tt></td>
<td><ul class="first last simple">
<li><tt class="docutils literal"><span class="pre">off</span></tt> - disable all asserts</li>
<li><tt class="docutils literal"><span class="pre">peoduction</span></tt> - enable asserts in release
builds, but don't abort, just log them to
<tt class="docutils literal"><span class="pre">extern</span> <span class="pre">char</span> <span class="pre">const*</span> <span class="pre">libtorrent_assert_log</span></tt>.</li>
<li><tt class="docutils literal"><span class="pre">on</span></tt> - enable asserts in debug builds (this is
the default). On GNU systems, print a stack
trace of the assert and some more information.</li>
<li><tt class="docutils literal"><span class="pre">system</span></tt> use the libc assert macro</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>The <tt class="docutils literal"><span class="pre">variant</span></tt> feature is <em>implicit</em>, which means you don't need to specify
@ -720,6 +743,17 @@ or for running before releases.</td>
<td>This will exclude all deprecated functions from
the header files and cpp files.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">TORRENT_PRODUCTION_ASSERTS</span></tt></td>
<td>Define to either 0 or 1. Enables assert logging
in release builds.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">TORRENT_NO_ASSERTS</span></tt></td>
<td>Disables all asserts.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">TORRENT_USE_SYSTEM_ASSERTS</span></tt></td>
<td>Uses the libc assert macro rather then the
custom one.</td>
</tr>
</tbody>
</table>
<p>If you experience that libtorrent uses unreasonable amounts of cpu, it will

View File

@ -147,183 +147,184 @@
<li><a class="reference internal" href="#clear-error" id="id95">clear_error()</a></li>
<li><a class="reference internal" href="#set-upload-mode" id="id96">set_upload_mode()</a></li>
<li><a class="reference internal" href="#set-share-mode" id="id97">set_share_mode()</a></li>
<li><a class="reference internal" href="#resolve-countries" id="id98">resolve_countries()</a></li>
<li><a class="reference internal" href="#is-seed" id="id99">is_seed()</a></li>
<li><a class="reference internal" href="#auto-managed" id="id100">auto_managed()</a></li>
<li><a class="reference internal" href="#set-metadata" id="id101">set_metadata()</a></li>
<li><a class="reference internal" href="#set-tracker-login" id="id102">set_tracker_login()</a></li>
<li><a class="reference internal" href="#trackers-replace-trackers-add-tracker" id="id103">trackers() replace_trackers() add_tracker()</a></li>
<li><a class="reference internal" href="#add-url-seed-remove-url-seed-url-seeds" id="id104">add_url_seed() remove_url_seed() url_seeds()</a></li>
<li><a class="reference internal" href="#add-http-seed-remove-http-seed-http-seeds" id="id105">add_http_seed() remove_http_seed() http_seeds()</a></li>
<li><a class="reference internal" href="#queue-position-queue-position-up-queue-position-down-queue-position-top-queue-position-bottom" id="id106">queue_position() queue_position_up() queue_position_down() queue_position_top() queue_position_bottom()</a></li>
<li><a class="reference internal" href="#set-priority" id="id107">set_priority()</a></li>
<li><a class="reference internal" href="#use-interface" id="id108">use_interface()</a></li>
<li><a class="reference internal" href="#info-hash" id="id109">info_hash()</a></li>
<li><a class="reference internal" href="#set-max-uploads-max-uploads" id="id110">set_max_uploads() max_uploads()</a></li>
<li><a class="reference internal" href="#set-max-connections-max-connections" id="id111">set_max_connections() max_connections()</a></li>
<li><a class="reference internal" href="#save-resume-data" id="id112">save_resume_data()</a></li>
<li><a class="reference internal" href="#need-save-resume-data" id="id113">need_save_resume_data()</a></li>
<li><a class="reference internal" href="#id5" id="id114">status()</a></li>
<li><a class="reference internal" href="#get-download-queue" id="id115">get_download_queue()</a></li>
<li><a class="reference internal" href="#get-peer-info" id="id116">get_peer_info()</a></li>
<li><a class="reference internal" href="#get-torrent-info" id="id117">get_torrent_info()</a></li>
<li><a class="reference internal" href="#is-valid" id="id118">is_valid()</a></li>
<li><a class="reference internal" href="#apply-ip-filter" id="id98">apply_ip_filter()</a></li>
<li><a class="reference internal" href="#resolve-countries" id="id99">resolve_countries()</a></li>
<li><a class="reference internal" href="#is-seed" id="id100">is_seed()</a></li>
<li><a class="reference internal" href="#auto-managed" id="id101">auto_managed()</a></li>
<li><a class="reference internal" href="#set-metadata" id="id102">set_metadata()</a></li>
<li><a class="reference internal" href="#set-tracker-login" id="id103">set_tracker_login()</a></li>
<li><a class="reference internal" href="#trackers-replace-trackers-add-tracker" id="id104">trackers() replace_trackers() add_tracker()</a></li>
<li><a class="reference internal" href="#add-url-seed-remove-url-seed-url-seeds" id="id105">add_url_seed() remove_url_seed() url_seeds()</a></li>
<li><a class="reference internal" href="#add-http-seed-remove-http-seed-http-seeds" id="id106">add_http_seed() remove_http_seed() http_seeds()</a></li>
<li><a class="reference internal" href="#queue-position-queue-position-up-queue-position-down-queue-position-top-queue-position-bottom" id="id107">queue_position() queue_position_up() queue_position_down() queue_position_top() queue_position_bottom()</a></li>
<li><a class="reference internal" href="#set-priority" id="id108">set_priority()</a></li>
<li><a class="reference internal" href="#use-interface" id="id109">use_interface()</a></li>
<li><a class="reference internal" href="#info-hash" id="id110">info_hash()</a></li>
<li><a class="reference internal" href="#set-max-uploads-max-uploads" id="id111">set_max_uploads() max_uploads()</a></li>
<li><a class="reference internal" href="#set-max-connections-max-connections" id="id112">set_max_connections() max_connections()</a></li>
<li><a class="reference internal" href="#save-resume-data" id="id113">save_resume_data()</a></li>
<li><a class="reference internal" href="#need-save-resume-data" id="id114">need_save_resume_data()</a></li>
<li><a class="reference internal" href="#id5" id="id115">status()</a></li>
<li><a class="reference internal" href="#get-download-queue" id="id116">get_download_queue()</a></li>
<li><a class="reference internal" href="#get-peer-info" id="id117">get_peer_info()</a></li>
<li><a class="reference internal" href="#get-torrent-info" id="id118">get_torrent_info()</a></li>
<li><a class="reference internal" href="#is-valid" id="id119">is_valid()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#torrent-status" id="id119">torrent_status</a></li>
<li><a class="reference internal" href="#peer-info" id="id120">peer_info</a></li>
<li><a class="reference internal" href="#feed-handle" id="id121">feed_handle</a><ul>
<li><a class="reference internal" href="#update-feed" id="id122">update_feed()</a></li>
<li><a class="reference internal" href="#get-feed-status" id="id123">get_feed_status()</a></li>
<li><a class="reference internal" href="#set-settings-settings" id="id124">set_settings() settings()</a></li>
<li><a class="reference internal" href="#torrent-status" id="id120">torrent_status</a></li>
<li><a class="reference internal" href="#peer-info" id="id121">peer_info</a></li>
<li><a class="reference internal" href="#feed-handle" id="id122">feed_handle</a><ul>
<li><a class="reference internal" href="#update-feed" id="id123">update_feed()</a></li>
<li><a class="reference internal" href="#get-feed-status" id="id124">get_feed_status()</a></li>
<li><a class="reference internal" href="#set-settings-settings" id="id125">set_settings() settings()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#feed-item" id="id125">feed_item</a></li>
<li><a class="reference internal" href="#session-customization" id="id126">session customization</a><ul>
<li><a class="reference internal" href="#presets" id="id127">presets</a></li>
<li><a class="reference internal" href="#session-settings" id="id128">session_settings</a></li>
<li><a class="reference internal" href="#feed-item" id="id126">feed_item</a></li>
<li><a class="reference internal" href="#session-customization" id="id127">session customization</a><ul>
<li><a class="reference internal" href="#presets" id="id128">presets</a></li>
<li><a class="reference internal" href="#session-settings" id="id129">session_settings</a></li>
</ul>
</li>
<li><a class="reference internal" href="#pe-settings" id="id129">pe_settings</a></li>
<li><a class="reference internal" href="#proxy-settings" id="id130">proxy_settings</a></li>
<li><a class="reference internal" href="#ip-filter" id="id131">ip_filter</a><ul>
<li><a class="reference internal" href="#id8" id="id132">ip_filter()</a></li>
<li><a class="reference internal" href="#add-rule" id="id133">add_rule()</a></li>
<li><a class="reference internal" href="#access" id="id134">access()</a></li>
<li><a class="reference internal" href="#export-filter" id="id135">export_filter()</a></li>
<li><a class="reference internal" href="#pe-settings" id="id130">pe_settings</a></li>
<li><a class="reference internal" href="#proxy-settings" id="id131">proxy_settings</a></li>
<li><a class="reference internal" href="#ip-filter" id="id132">ip_filter</a><ul>
<li><a class="reference internal" href="#id8" id="id133">ip_filter()</a></li>
<li><a class="reference internal" href="#add-rule" id="id134">add_rule()</a></li>
<li><a class="reference internal" href="#access" id="id135">access()</a></li>
<li><a class="reference internal" href="#export-filter" id="id136">export_filter()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#big-number" id="id136">big_number</a></li>
<li><a class="reference internal" href="#bitfield" id="id137">bitfield</a></li>
<li><a class="reference internal" href="#hasher" id="id138">hasher</a></li>
<li><a class="reference internal" href="#fingerprint" id="id139">fingerprint</a></li>
<li><a class="reference internal" href="#upnp-and-nat-pmp" id="id140">UPnP and NAT-PMP</a><ul>
<li><a class="reference internal" href="#add-mapping" id="id141">add_mapping()</a></li>
<li><a class="reference internal" href="#delete-mapping" id="id142">delete_mapping()</a></li>
<li><a class="reference internal" href="#router-model" id="id143">router_model()</a></li>
<li><a class="reference internal" href="#big-number" id="id137">big_number</a></li>
<li><a class="reference internal" href="#bitfield" id="id138">bitfield</a></li>
<li><a class="reference internal" href="#hasher" id="id139">hasher</a></li>
<li><a class="reference internal" href="#fingerprint" id="id140">fingerprint</a></li>
<li><a class="reference internal" href="#upnp-and-nat-pmp" id="id141">UPnP and NAT-PMP</a><ul>
<li><a class="reference internal" href="#add-mapping" id="id142">add_mapping()</a></li>
<li><a class="reference internal" href="#delete-mapping" id="id143">delete_mapping()</a></li>
<li><a class="reference internal" href="#router-model" id="id144">router_model()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#free-functions" id="id144">free functions</a><ul>
<li><a class="reference internal" href="#identify-client" id="id145">identify_client()</a></li>
<li><a class="reference internal" href="#client-fingerprint" id="id146">client_fingerprint()</a></li>
<li><a class="reference internal" href="#lazy-bdecode" id="id147">lazy_bdecode()</a></li>
<li><a class="reference internal" href="#bdecode-bencode" id="id148">bdecode() bencode()</a></li>
<li><a class="reference internal" href="#add-magnet-uri" id="id149">add_magnet_uri()</a></li>
<li><a class="reference internal" href="#make-magnet-uri" id="id150">make_magnet_uri()</a></li>
<li><a class="reference internal" href="#free-functions" id="id145">free functions</a><ul>
<li><a class="reference internal" href="#identify-client" id="id146">identify_client()</a></li>
<li><a class="reference internal" href="#client-fingerprint" id="id147">client_fingerprint()</a></li>
<li><a class="reference internal" href="#lazy-bdecode" id="id148">lazy_bdecode()</a></li>
<li><a class="reference internal" href="#bdecode-bencode" id="id149">bdecode() bencode()</a></li>
<li><a class="reference internal" href="#add-magnet-uri" id="id150">add_magnet_uri()</a></li>
<li><a class="reference internal" href="#make-magnet-uri" id="id151">make_magnet_uri()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#alerts" id="id151">alerts</a><ul>
<li><a class="reference internal" href="#torrent-added-alert" id="id152">torrent_added_alert</a></li>
<li><a class="reference internal" href="#torrent-removed-alert" id="id153">torrent_removed_alert</a></li>
<li><a class="reference internal" href="#read-piece-alert" id="id154">read_piece_alert</a></li>
<li><a class="reference internal" href="#external-ip-alert" id="id155">external_ip_alert</a></li>
<li><a class="reference internal" href="#listen-failed-alert" id="id156">listen_failed_alert</a></li>
<li><a class="reference internal" href="#listen-succeeded-alert" id="id157">listen_succeeded_alert</a></li>
<li><a class="reference internal" href="#portmap-error-alert" id="id158">portmap_error_alert</a></li>
<li><a class="reference internal" href="#portmap-alert" id="id159">portmap_alert</a></li>
<li><a class="reference internal" href="#portmap-log-alert" id="id160">portmap_log_alert</a></li>
<li><a class="reference internal" href="#file-error-alert" id="id161">file_error_alert</a></li>
<li><a class="reference internal" href="#torrent-error-alert" id="id162">torrent_error_alert</a></li>
<li><a class="reference internal" href="#file-renamed-alert" id="id163">file_renamed_alert</a></li>
<li><a class="reference internal" href="#file-rename-failed-alert" id="id164">file_rename_failed_alert</a></li>
<li><a class="reference internal" href="#tracker-announce-alert" id="id165">tracker_announce_alert</a></li>
<li><a class="reference internal" href="#tracker-error-alert" id="id166">tracker_error_alert</a></li>
<li><a class="reference internal" href="#tracker-reply-alert" id="id167">tracker_reply_alert</a></li>
<li><a class="reference internal" href="#tracker-warning-alert" id="id168">tracker_warning_alert</a></li>
<li><a class="reference internal" href="#scrape-reply-alert" id="id169">scrape_reply_alert</a></li>
<li><a class="reference internal" href="#scrape-failed-alert" id="id170">scrape_failed_alert</a></li>
<li><a class="reference internal" href="#url-seed-alert" id="id171">url_seed_alert</a></li>
<li><a class="reference internal" href="#hash-failed-alert" id="id172">hash_failed_alert</a></li>
<li><a class="reference internal" href="#peer-alert" id="id173">peer_alert</a></li>
<li><a class="reference internal" href="#peer-connect-alert" id="id174">peer_connect_alert</a></li>
<li><a class="reference internal" href="#peer-ban-alert" id="id175">peer_ban_alert</a></li>
<li><a class="reference internal" href="#peer-snubbed-alert" id="id176">peer_snubbed_alert</a></li>
<li><a class="reference internal" href="#peer-unsnubbed-alert" id="id177">peer_unsnubbed_alert</a></li>
<li><a class="reference internal" href="#peer-error-alert" id="id178">peer_error_alert</a></li>
<li><a class="reference internal" href="#peer-connected-alert" id="id179">peer_connected_alert</a></li>
<li><a class="reference internal" href="#peer-disconnected-alert" id="id180">peer_disconnected_alert</a></li>
<li><a class="reference internal" href="#invalid-request-alert" id="id181">invalid_request_alert</a></li>
<li><a class="reference internal" href="#request-dropped-alert" id="id182">request_dropped_alert</a></li>
<li><a class="reference internal" href="#block-timeout-alert" id="id183">block_timeout_alert</a></li>
<li><a class="reference internal" href="#block-finished-alert" id="id184">block_finished_alert</a></li>
<li><a class="reference internal" href="#lsd-peer-alert" id="id185">lsd_peer_alert</a></li>
<li><a class="reference internal" href="#file-completed-alert" id="id186">file_completed_alert</a></li>
<li><a class="reference internal" href="#block-downloading-alert" id="id187">block_downloading_alert</a></li>
<li><a class="reference internal" href="#unwanted-block-alert" id="id188">unwanted_block_alert</a></li>
<li><a class="reference internal" href="#torrent-delete-failed-alert" id="id189">torrent_delete_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-deleted-alert" id="id190">torrent_deleted_alert</a></li>
<li><a class="reference internal" href="#torrent-finished-alert" id="id191">torrent_finished_alert</a></li>
<li><a class="reference internal" href="#performance-alert" id="id192">performance_alert</a></li>
<li><a class="reference internal" href="#state-changed-alert" id="id193">state_changed_alert</a></li>
<li><a class="reference internal" href="#metadata-failed-alert" id="id194">metadata_failed_alert</a></li>
<li><a class="reference internal" href="#metadata-received-alert" id="id195">metadata_received_alert</a></li>
<li><a class="reference internal" href="#fastresume-rejected-alert" id="id196">fastresume_rejected_alert</a></li>
<li><a class="reference internal" href="#peer-blocked-alert" id="id197">peer_blocked_alert</a></li>
<li><a class="reference internal" href="#storage-moved-alert" id="id198">storage_moved_alert</a></li>
<li><a class="reference internal" href="#storage-moved-failed-alert" id="id199">storage_moved_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-paused-alert" id="id200">torrent_paused_alert</a></li>
<li><a class="reference internal" href="#torrent-resumed-alert" id="id201">torrent_resumed_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-alert" id="id202">save_resume_data_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-failed-alert" id="id203">save_resume_data_failed_alert</a></li>
<li><a class="reference internal" href="#stats-alert" id="id204">stats_alert</a></li>
<li><a class="reference internal" href="#cache-flushed-alert" id="id205">cache_flushed_alert</a></li>
<li><a class="reference internal" href="#dht-announce-alert" id="id206">dht_announce_alert</a></li>
<li><a class="reference internal" href="#dht-get-peers-alert" id="id207">dht_get_peers_alert</a></li>
<li><a class="reference internal" href="#dht-reply-alert" id="id208">dht_reply_alert</a></li>
<li><a class="reference internal" href="#dht-bootstrap-alert" id="id209">dht_bootstrap_alert</a></li>
<li><a class="reference internal" href="#anonymous-mode-alert" id="id210">anonymous_mode_alert</a></li>
<li><a class="reference internal" href="#rss-alert" id="id211">rss_alert</a></li>
<li><a class="reference internal" href="#alerts" id="id152">alerts</a><ul>
<li><a class="reference internal" href="#torrent-added-alert" id="id153">torrent_added_alert</a></li>
<li><a class="reference internal" href="#torrent-removed-alert" id="id154">torrent_removed_alert</a></li>
<li><a class="reference internal" href="#read-piece-alert" id="id155">read_piece_alert</a></li>
<li><a class="reference internal" href="#external-ip-alert" id="id156">external_ip_alert</a></li>
<li><a class="reference internal" href="#listen-failed-alert" id="id157">listen_failed_alert</a></li>
<li><a class="reference internal" href="#listen-succeeded-alert" id="id158">listen_succeeded_alert</a></li>
<li><a class="reference internal" href="#portmap-error-alert" id="id159">portmap_error_alert</a></li>
<li><a class="reference internal" href="#portmap-alert" id="id160">portmap_alert</a></li>
<li><a class="reference internal" href="#portmap-log-alert" id="id161">portmap_log_alert</a></li>
<li><a class="reference internal" href="#file-error-alert" id="id162">file_error_alert</a></li>
<li><a class="reference internal" href="#torrent-error-alert" id="id163">torrent_error_alert</a></li>
<li><a class="reference internal" href="#file-renamed-alert" id="id164">file_renamed_alert</a></li>
<li><a class="reference internal" href="#file-rename-failed-alert" id="id165">file_rename_failed_alert</a></li>
<li><a class="reference internal" href="#tracker-announce-alert" id="id166">tracker_announce_alert</a></li>
<li><a class="reference internal" href="#tracker-error-alert" id="id167">tracker_error_alert</a></li>
<li><a class="reference internal" href="#tracker-reply-alert" id="id168">tracker_reply_alert</a></li>
<li><a class="reference internal" href="#tracker-warning-alert" id="id169">tracker_warning_alert</a></li>
<li><a class="reference internal" href="#scrape-reply-alert" id="id170">scrape_reply_alert</a></li>
<li><a class="reference internal" href="#scrape-failed-alert" id="id171">scrape_failed_alert</a></li>
<li><a class="reference internal" href="#url-seed-alert" id="id172">url_seed_alert</a></li>
<li><a class="reference internal" href="#hash-failed-alert" id="id173">hash_failed_alert</a></li>
<li><a class="reference internal" href="#peer-alert" id="id174">peer_alert</a></li>
<li><a class="reference internal" href="#peer-connect-alert" id="id175">peer_connect_alert</a></li>
<li><a class="reference internal" href="#peer-ban-alert" id="id176">peer_ban_alert</a></li>
<li><a class="reference internal" href="#peer-snubbed-alert" id="id177">peer_snubbed_alert</a></li>
<li><a class="reference internal" href="#peer-unsnubbed-alert" id="id178">peer_unsnubbed_alert</a></li>
<li><a class="reference internal" href="#peer-error-alert" id="id179">peer_error_alert</a></li>
<li><a class="reference internal" href="#peer-connected-alert" id="id180">peer_connected_alert</a></li>
<li><a class="reference internal" href="#peer-disconnected-alert" id="id181">peer_disconnected_alert</a></li>
<li><a class="reference internal" href="#invalid-request-alert" id="id182">invalid_request_alert</a></li>
<li><a class="reference internal" href="#request-dropped-alert" id="id183">request_dropped_alert</a></li>
<li><a class="reference internal" href="#block-timeout-alert" id="id184">block_timeout_alert</a></li>
<li><a class="reference internal" href="#block-finished-alert" id="id185">block_finished_alert</a></li>
<li><a class="reference internal" href="#lsd-peer-alert" id="id186">lsd_peer_alert</a></li>
<li><a class="reference internal" href="#file-completed-alert" id="id187">file_completed_alert</a></li>
<li><a class="reference internal" href="#block-downloading-alert" id="id188">block_downloading_alert</a></li>
<li><a class="reference internal" href="#unwanted-block-alert" id="id189">unwanted_block_alert</a></li>
<li><a class="reference internal" href="#torrent-delete-failed-alert" id="id190">torrent_delete_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-deleted-alert" id="id191">torrent_deleted_alert</a></li>
<li><a class="reference internal" href="#torrent-finished-alert" id="id192">torrent_finished_alert</a></li>
<li><a class="reference internal" href="#performance-alert" id="id193">performance_alert</a></li>
<li><a class="reference internal" href="#state-changed-alert" id="id194">state_changed_alert</a></li>
<li><a class="reference internal" href="#metadata-failed-alert" id="id195">metadata_failed_alert</a></li>
<li><a class="reference internal" href="#metadata-received-alert" id="id196">metadata_received_alert</a></li>
<li><a class="reference internal" href="#fastresume-rejected-alert" id="id197">fastresume_rejected_alert</a></li>
<li><a class="reference internal" href="#peer-blocked-alert" id="id198">peer_blocked_alert</a></li>
<li><a class="reference internal" href="#storage-moved-alert" id="id199">storage_moved_alert</a></li>
<li><a class="reference internal" href="#storage-moved-failed-alert" id="id200">storage_moved_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-paused-alert" id="id201">torrent_paused_alert</a></li>
<li><a class="reference internal" href="#torrent-resumed-alert" id="id202">torrent_resumed_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-alert" id="id203">save_resume_data_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-failed-alert" id="id204">save_resume_data_failed_alert</a></li>
<li><a class="reference internal" href="#stats-alert" id="id205">stats_alert</a></li>
<li><a class="reference internal" href="#cache-flushed-alert" id="id206">cache_flushed_alert</a></li>
<li><a class="reference internal" href="#dht-announce-alert" id="id207">dht_announce_alert</a></li>
<li><a class="reference internal" href="#dht-get-peers-alert" id="id208">dht_get_peers_alert</a></li>
<li><a class="reference internal" href="#dht-reply-alert" id="id209">dht_reply_alert</a></li>
<li><a class="reference internal" href="#dht-bootstrap-alert" id="id210">dht_bootstrap_alert</a></li>
<li><a class="reference internal" href="#anonymous-mode-alert" id="id211">anonymous_mode_alert</a></li>
<li><a class="reference internal" href="#rss-alert" id="id212">rss_alert</a></li>
</ul>
</li>
<li><a class="reference internal" href="#alert-dispatcher" id="id212">alert dispatcher</a></li>
<li><a class="reference internal" href="#exceptions" id="id213">exceptions</a><ul>
<li><a class="reference internal" href="#libtorrent-exception" id="id214">libtorrent_exception</a></li>
<li><a class="reference internal" href="#alert-dispatcher" id="id213">alert dispatcher</a></li>
<li><a class="reference internal" href="#exceptions" id="id214">exceptions</a><ul>
<li><a class="reference internal" href="#libtorrent-exception" id="id215">libtorrent_exception</a></li>
</ul>
</li>
<li><a class="reference internal" href="#error-code" id="id215">error_code</a><ul>
<li><a class="reference internal" href="#translating-error-codes" id="id216">translating error codes</a></li>
<li><a class="reference internal" href="#error-code" id="id216">error_code</a><ul>
<li><a class="reference internal" href="#translating-error-codes" id="id217">translating error codes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#storage-interface" id="id217">storage_interface</a><ul>
<li><a class="reference internal" href="#initialize" id="id218">initialize()</a></li>
<li><a class="reference internal" href="#has-any-file" id="id219">has_any_file()</a></li>
<li><a class="reference internal" href="#readv-writev" id="id220">readv() writev()</a></li>
<li><a class="reference internal" href="#sparse-end" id="id221">sparse_end()</a></li>
<li><a class="reference internal" href="#id10" id="id222">move_storage()</a></li>
<li><a class="reference internal" href="#verify-resume-data" id="id223">verify_resume_data()</a></li>
<li><a class="reference internal" href="#write-resume-data" id="id224">write_resume_data()</a></li>
<li><a class="reference internal" href="#move-slot" id="id225">move_slot()</a></li>
<li><a class="reference internal" href="#swap-slots" id="id226">swap_slots()</a></li>
<li><a class="reference internal" href="#swap-slots3" id="id227">swap_slots3()</a></li>
<li><a class="reference internal" href="#id11" id="id228">rename_file()</a></li>
<li><a class="reference internal" href="#release-files" id="id229">release_files()</a></li>
<li><a class="reference internal" href="#delete-files" id="id230">delete_files()</a></li>
<li><a class="reference internal" href="#finalize-file" id="id231">finalize_file()</a></li>
<li><a class="reference internal" href="#storage-interface" id="id218">storage_interface</a><ul>
<li><a class="reference internal" href="#initialize" id="id219">initialize()</a></li>
<li><a class="reference internal" href="#has-any-file" id="id220">has_any_file()</a></li>
<li><a class="reference internal" href="#readv-writev" id="id221">readv() writev()</a></li>
<li><a class="reference internal" href="#sparse-end" id="id222">sparse_end()</a></li>
<li><a class="reference internal" href="#id10" id="id223">move_storage()</a></li>
<li><a class="reference internal" href="#verify-resume-data" id="id224">verify_resume_data()</a></li>
<li><a class="reference internal" href="#write-resume-data" id="id225">write_resume_data()</a></li>
<li><a class="reference internal" href="#move-slot" id="id226">move_slot()</a></li>
<li><a class="reference internal" href="#swap-slots" id="id227">swap_slots()</a></li>
<li><a class="reference internal" href="#swap-slots3" id="id228">swap_slots3()</a></li>
<li><a class="reference internal" href="#id11" id="id229">rename_file()</a></li>
<li><a class="reference internal" href="#release-files" id="id230">release_files()</a></li>
<li><a class="reference internal" href="#delete-files" id="id231">delete_files()</a></li>
<li><a class="reference internal" href="#finalize-file" id="id232">finalize_file()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#magnet-links" id="id232">magnet links</a></li>
<li><a class="reference internal" href="#queuing" id="id233">queuing</a><ul>
<li><a class="reference internal" href="#downloading" id="id234">downloading</a></li>
<li><a class="reference internal" href="#seeding" id="id235">seeding</a></li>
<li><a class="reference internal" href="#magnet-links" id="id233">magnet links</a></li>
<li><a class="reference internal" href="#queuing" id="id234">queuing</a><ul>
<li><a class="reference internal" href="#downloading" id="id235">downloading</a></li>
<li><a class="reference internal" href="#seeding" id="id236">seeding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#fast-resume" id="id236">fast resume</a><ul>
<li><a class="reference internal" href="#file-format" id="id237">file format</a></li>
<li><a class="reference internal" href="#fast-resume" id="id237">fast resume</a><ul>
<li><a class="reference internal" href="#file-format" id="id238">file format</a></li>
</ul>
</li>
<li><a class="reference internal" href="#threads" id="id238">threads</a></li>
<li><a class="reference internal" href="#storage-allocation" id="id239">storage allocation</a><ul>
<li><a class="reference internal" href="#sparse-allocation" id="id240">sparse allocation</a></li>
<li><a class="reference internal" href="#full-allocation" id="id241">full allocation</a></li>
<li><a class="reference internal" href="#compact-allocation" id="id242">compact allocation</a></li>
<li><a class="reference internal" href="#threads" id="id239">threads</a></li>
<li><a class="reference internal" href="#storage-allocation" id="id240">storage allocation</a><ul>
<li><a class="reference internal" href="#sparse-allocation" id="id241">sparse allocation</a></li>
<li><a class="reference internal" href="#full-allocation" id="id242">full allocation</a></li>
<li><a class="reference internal" href="#compact-allocation" id="id243">compact allocation</a></li>
</ul>
</li>
<li><a class="reference internal" href="#extensions" id="id243">extensions</a><ul>
<li><a class="reference internal" href="#metadata-from-peers" id="id244">metadata from peers</a></li>
<li><a class="reference internal" href="#http-seeding" id="id245">HTTP seeding</a></li>
<li><a class="reference internal" href="#extensions" id="id244">extensions</a><ul>
<li><a class="reference internal" href="#metadata-from-peers" id="id245">metadata from peers</a></li>
<li><a class="reference internal" href="#http-seeding" id="id246">HTTP seeding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#filename-checks" id="id246">filename checks</a></li>
<li><a class="reference internal" href="#filename-checks" id="id247">filename checks</a></li>
</ul>
</div>
<div class="section" id="overview">
@ -519,9 +520,14 @@ class session: public boost::noncopyable
bool is_listening() const;
unsigned short listen_port() const;
enum { listen_reuse_address = 1 };
bool listen_on(
enum {
listen_reuse_address = 1,
listen_no_system_port = 2
};
void listen_on(
std::pair&lt;int, int&gt; const&amp; port_range
, error_code&amp; ec
, char const* interface = 0
, int flags = 0);
@ -1160,8 +1166,15 @@ a piece is, the more likely it is to be flushed to disk.</p>
<pre class="literal-block">
bool is_listening() const;
unsigned short listen_port() const;
bool listen_on(
enum {
listen_reuse_address = 1,
listen_no_system_port = 2
};
void listen_on(
std::pair&lt;int, int&gt; const&amp; port_range
, error_code&amp; ec
, char const* interface = 0
, int flags = 0);
</pre>
@ -1178,12 +1191,16 @@ will be opened with these new settings. The port range is the ports it will try
to listen on, if the first port fails, it will continue trying the next port within
the range and so on. The interface parameter can be left as 0, in that case the
os will decide which interface to listen on, otherwise it should be the ip-address
of the interface you want the listener socket bound to. <tt class="docutils literal"><span class="pre">listen_on()</span></tt> returns true
if it managed to open the socket, and false if it failed. If it fails, it will also
generate an appropriate alert (<a class="reference internal" href="#listen-failed-alert">listen_failed_alert</a>). If all ports in the specified
range fails to be opened for listening, libtorrent will try to use port 0 (which
tells the operating system to pick a port that's free). If that still fails you
may see a <a class="reference internal" href="#listen-failed-alert">listen_failed_alert</a> with port 0 even if you didn't ask to listen on it.</p>
of the interface you want the listener socket bound to. <tt class="docutils literal"><span class="pre">listen_on()</span></tt> returns the
error code of the operation in <tt class="docutils literal"><span class="pre">ec</span></tt>. If this indicates success, the session is
listening on a port within the specified range. If it fails, it will also
generate an appropriate alert (<a class="reference internal" href="#listen-failed-alert">listen_failed_alert</a>).</p>
<p>If all ports in the specified range fails to be opened for listening, libtorrent will
try to use port 0 (which tells the operating system to pick a port that's free). If
that still fails you may see a <a class="reference internal" href="#listen-failed-alert">listen_failed_alert</a> with port 0 even if you didn't
ask to listen on it.</p>
<p>It is possible to prevent libtorrent from binding to port 0 by passing in the flag
<tt class="docutils literal"><span class="pre">session::no_system_port</span></tt> in the <tt class="docutils literal"><span class="pre">flags</span></tt> argument.</p>
<p>The interface parameter can also be a hostname that will resolve to the device you
want to listen on. If you don't specify an interface, libtorrent may attempt to
listen on multiple interfaces (typically 0.0.0.0 and ::). This means that if your
@ -2228,6 +2245,7 @@ struct torrent_handle
std::string name() const;
enum save_resume_flags_t { flush_disk_cache = 1, save_info_dict = 2 };
void save_resume_data(int flags = 0) const;
bool need_save_resume_data() const;
void force_reannounce() const;
@ -2287,6 +2305,8 @@ struct torrent_handle
void set_upload_mode(bool m) const;
void set_share_mode(bool m) const;
void apply_ip_filter(bool b) const;
void flush_cache() const;
void resolve_countries(bool r);
@ -2761,6 +2781,14 @@ not necessarily be downloaded, especially not the whole of it. Only parts that a
to be distributed to more than 2 other peers are downloaded, and only if the previous
prediction was correct.</p>
</div>
<div class="section" id="apply-ip-filter">
<h2>apply_ip_filter()</h2>
<pre class="literal-block">
void apply_ip_filter(bool b) const;
</pre>
<p>Set to true to apply the session global IP filter to this torrent (which is the
default). Set to false to make this torrent ignore the IP filter.</p>
</div>
<div class="section" id="resolve-countries">
<h2>resolve_countries()</h2>
<blockquote>
@ -2968,14 +2996,18 @@ function, it means unlimited.</p>
<h2>save_resume_data()</h2>
<blockquote>
<pre class="literal-block">
enum save_resume_flags_t { flush_disk_cache = 1, save_info_dict = 2 };
void save_resume_data(int flags = 0) const;
</pre>
</blockquote>
<p><tt class="docutils literal"><span class="pre">save_resume_data()</span></tt> generates fast-resume data and returns it as an <a class="reference internal" href="#entry">entry</a>. This <a class="reference internal" href="#entry">entry</a>
is suitable for being bencoded. For more information about how fast-resume works, see <a class="reference internal" href="#fast-resume">fast resume</a>.</p>
<p>The <tt class="docutils literal"><span class="pre">flags</span></tt> argument may be set to <tt class="docutils literal"><span class="pre">torrent_handle::flush_cache</span></tt>. Doing so will flush the disk
cache before creating the resume data. This avoids a problem with file timestamps in the resume
data in case the cache hasn't been flushed yet.</p>
<p>The <tt class="docutils literal"><span class="pre">flags</span></tt> argument is a bitmask of flags ORed together. If the flag <tt class="docutils literal"><span class="pre">torrent_handle::flush_cache</span></tt>
is set, the disk cache will be flushed before creating the resume data. This avoids a problem with
file timestamps in the resume data in case the cache hasn't been flushed yet.</p>
<p>If the flag <tt class="docutils literal"><span class="pre">torrent_handle::save_info_dict</span></tt> is set, the resume data will contain the metadata
from the torrent file as well. This is default for any torrent that's added without a torrent
file (such as a magnet link or a URL).</p>
<p>This operation is asynchronous, <tt class="docutils literal"><span class="pre">save_resume_data</span></tt> will return immediately. The resume data
is delivered when it's done through an <a class="reference internal" href="#save-resume-data-alert">save_resume_data_alert</a>.</p>
<p>The fast resume data will be empty in the following cases:</p>
@ -3336,6 +3368,7 @@ struct torrent_status
int queue_position;
bool need_save_resume;
bool ip_filter_applies;
};
</pre>
<p><tt class="docutils literal"><span class="pre">handle</span></tt> is a handle to the torrent whose status the object represents.</p>
@ -3563,6 +3596,8 @@ queue. If the torrent is a seed or finished, this is -1.</p>
<p><tt class="docutils literal"><span class="pre">need_save_resume</span></tt> is true if this torrent has unsaved changes
to its download state and statistics since the last resume data
was saved.</p>
<p><tt class="docutils literal"><span class="pre">ip_filter_applies</span></tt> is true if the session global IP filter applies
to this torrent. This defaults to true.</p>
</div>
<div class="section" id="peer-info">
<h1>peer_info</h1>
@ -4265,6 +4300,7 @@ struct session_settings
bool enable_incoming_tcp;
int max_pex_peers;
bool ignore_resume_timestamps;
bool no_recheck_incomplete_resume;
bool anonymous_mode;
int tick_interval;
int share_mode_target;
@ -4305,6 +4341,9 @@ struct session_settings
bool no_connect_privileged_ports;
int alert_queue_size;
int max_metadata_size;
bool smooth_connects;
bool always_send_user_agent;
bool apply_ip_filter_to_trackers;
};
</pre>
<p><tt class="docutils literal"><span class="pre">version</span></tt> is automatically set to the libtorrent version you're using
@ -4859,7 +4898,9 @@ be changed individually later using
<p>if <tt class="docutils literal"><span class="pre">broadcast_lsd</span></tt> is set to true, the local peer discovery
(or Local Service Discovery) will not only use IP multicast, but also
broadcast its messages. This can be useful when running on networks
that don't support multicast. It's off by default since it's inefficient.</p>
that don't support multicast. Since broadcast messages might be
expensive and disruptive on networks, only every 8th announce uses
broadcast.</p>
<p><tt class="docutils literal"><span class="pre">enable_outgoing_utp</span></tt>, <tt class="docutils literal"><span class="pre">enable_incoming_utp</span></tt>, <tt class="docutils literal"><span class="pre">enable_outgoing_tcp</span></tt>,
<tt class="docutils literal"><span class="pre">enable_incoming_tcp</span></tt> all determines if libtorrent should attempt to make
outgoing connections of the specific type, or allow incoming connection. By
@ -4872,6 +4913,12 @@ to accepted (torrents are more likely to be fully checked when loaded).
It might be useful to set this to true if your network is faster than your
disk, and it would be faster to redownload potentially missed pieces than
to go through the whole storage to look for them.</p>
<p><tt class="docutils literal"><span class="pre">no_recheck_incomplete_resume</span></tt> determines if the storage should check
the whole files when resume data is incomplete or missing or whether
it should simply assume we don't have any of the data. By default, this
is determined by the existance of any of the files. By setting this setting
to true, the files won't be checked, but will go straight to download
mode.</p>
<p><tt class="docutils literal"><span class="pre">anonymous_mode</span></tt> defaults to false. When set to true, the client tries
to hide its identity to a certain degree. The peer-ID will no longer
include the client's fingerprint. The user-agent will be reset to an
@ -4991,6 +5038,18 @@ alerts are not popped, the queue will eventually fill up to this level. This
defaults to 1000.</p>
<p><tt class="docutils literal"><span class="pre">max_metadata_size</span></tt> is the maximum allowed size (in bytes) to be received
by the metadata extension, i.e. magnet links. It defaults to 1 MiB.</p>
<p><tt class="docutils literal"><span class="pre">smooth_connects</span></tt> is true by default, which means the number of connection
attempts per second may be limited to below the <tt class="docutils literal"><span class="pre">connection_speed</span></tt>, in case
we're close to bump up against the limit of number of connections. The intention
of this setting is to more evenly distribute our connection attempts over time,
instead of attempting to connectin in batches, and timing them out in batches.</p>
<p><tt class="docutils literal"><span class="pre">always_send_user_agent</span></tt> defaults to false. When set to true, web connections
will include a user-agent with every request, as opposed to just the first
request in a connection.</p>
<p><tt class="docutils literal"><span class="pre">apply_ip_filter_to_trackers</span></tt> defaults to true. It determines whether the
IP filter applies to trackers as well as peers. If this is set to false,
trackers are exempt from the IP filter (if there is one). If no IP filter
is set, this setting is irrelevant.</p>
</div>
</div>
<div class="section" id="pe-settings">
@ -6174,7 +6233,7 @@ struct peer_disconnected_alert: peer_alert
<div class="section" id="invalid-request-alert">
<h2>invalid_request_alert</h2>
<p>This is a debug alert that is generated by an incoming invalid piece request.
<tt class="docutils literal"><span class="pre">Ïp</span></tt> is the address of the peer and the <tt class="docutils literal"><span class="pre">request</span></tt> is the actual incoming
<tt class="docutils literal"><span class="pre">ìp</span></tt> is the address of the peer and the <tt class="docutils literal"><span class="pre">request</span></tt> is the actual incoming
request from the peer.</p>
<pre class="literal-block">
struct invalid_request_alert: peer_alert
@ -7222,6 +7281,13 @@ potentially better peer</td>
<td>The peer sent an pex messages too often. This is a possible
attempt of and attack</td>
</tr>
<tr><td>109</td>
<td>no_metadata</td>
<td>The operation failed because it requires the torrent to have
the metadata (.torrent file) and it doesn't have it yet.
This happens for magnet links before they have downloaded the
metadata, and also torrents added by URL.</td>
</tr>
</tbody>
</table>
<p>NAT-PMP errors:</p>
@ -7609,13 +7675,13 @@ std::string error_code_to_string(boost::system::error_code const&amp; ec)
static const char const* swedish[] =
{
&quot;inget fel&quot;,
&quot;en fil i torrenten kolliderar med en fil frÂn en annan torrent&quot;,
&quot;en fil i torrenten kolliderar med en fil från en annan torrent&quot;,
&quot;hash check misslyckades&quot;,
&quot;torrent filen r inte en dictionary&quot;,
&quot;'info'-nyckeln saknas eller r korrupt i torrentfilen&quot;,
&quot;'info'-f‰ltet ‰r inte en dictionary&quot;,
&quot;'piece length' f‰ltet saknas eller ‰r korrupt i torrentfilen&quot;,
&quot;torrentfilen saknar namnfltet&quot;,
&quot;torrent filen är inte en dictionary&quot;,
&quot;'info'-nyckeln saknas eller är korrupt i torrentfilen&quot;,
&quot;'info'-fältet är inte en dictionary&quot;,
&quot;'piece length' fältet saknas eller är korrupt i torrentfilen&quot;,
&quot;torrentfilen saknar namnfältet&quot;,
&quot;ogiltigt namn i torrentfilen (kan vara en attack)&quot;,
// ... more strings here
};