documentation fixes
This commit is contained in:
parent
176d57ab8c
commit
5e4d6d139f
|
@ -75,7 +75,9 @@ as <tt class="docutils literal">explicit_cache</tt>).</p>
|
||||||
<dd><p class="first last">Finding typos or outdated sections in the documentation. Contributing documentation
|
<dd><p class="first last">Finding typos or outdated sections in the documentation. Contributing documentation
|
||||||
based on your own experience and experimentation with the library or with BitTorrent
|
based on your own experience and experimentation with the library or with BitTorrent
|
||||||
in general. Non-reference documentation is very much welcome as well, higher level
|
in general. Non-reference documentation is very much welcome as well, higher level
|
||||||
descriptions on how to configure libtorrent for various situations for instance.</p>
|
descriptions on how to configure libtorrent for various situations for instance.
|
||||||
|
The reference documentation for libtorrent is generated from the header files.
|
||||||
|
For updates, please submit a <a class="reference external" href="https://github.com/arvidn/libtorrent">pull request</a>.</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
|
@ -83,7 +85,8 @@ descriptions on how to configure libtorrent for various situations for instance.
|
||||||
<dt>Code</dt>
|
<dt>Code</dt>
|
||||||
<dd><p class="first">Contributing code for new features or bug-fixes is highly welcome. If you're interested
|
<dd><p class="first">Contributing code for new features or bug-fixes is highly welcome. If you're interested
|
||||||
in adding a feature but not sure where to start, please contact the <a class="reference external" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> or
|
in adding a feature but not sure where to start, please contact the <a class="reference external" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> or
|
||||||
<tt class="docutils literal">#libtorrent</tt> @ <tt class="docutils literal">irc.freenode.net</tt>.</p>
|
<tt class="docutils literal">#libtorrent</tt> @ <tt class="docutils literal">irc.freenode.net</tt>. For proposed fixes or udpates, please
|
||||||
|
submit a <a class="reference external" href="https://github.com/arvidn/libtorrent">pull request</a>.</p>
|
||||||
<p class="last">New features might be better support for integrating with other services, new choking
|
<p class="last">New features might be better support for integrating with other services, new choking
|
||||||
algorithms, seeding policies, ports to new platforms etc.</p>
|
algorithms, seeding policies, ports to new platforms etc.</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
|
@ -34,11 +34,14 @@ enumerated on this page, please contact arvid@libtorrent.org or the `mailing lis
|
||||||
based on your own experience and experimentation with the library or with BitTorrent
|
based on your own experience and experimentation with the library or with BitTorrent
|
||||||
in general. Non-reference documentation is very much welcome as well, higher level
|
in general. Non-reference documentation is very much welcome as well, higher level
|
||||||
descriptions on how to configure libtorrent for various situations for instance.
|
descriptions on how to configure libtorrent for various situations for instance.
|
||||||
|
The reference documentation for libtorrent is generated from the header files.
|
||||||
|
For updates, please submit a `pull request`_.
|
||||||
|
|
||||||
3. Code
|
3. Code
|
||||||
Contributing code for new features or bug-fixes is highly welcome. If you're interested
|
Contributing code for new features or bug-fixes is highly welcome. If you're interested
|
||||||
in adding a feature but not sure where to start, please contact the `mailing list`_ or
|
in adding a feature but not sure where to start, please contact the `mailing list`_ or
|
||||||
``#libtorrent`` @ ``irc.freenode.net``.
|
``#libtorrent`` @ ``irc.freenode.net``. For proposed fixes or udpates, please
|
||||||
|
submit a `pull request`_.
|
||||||
|
|
||||||
New features might be better support for integrating with other services, new choking
|
New features might be better support for integrating with other services, new choking
|
||||||
algorithms, seeding policies, ports to new platforms etc.
|
algorithms, seeding policies, ports to new platforms etc.
|
||||||
|
@ -49,5 +52,7 @@ For outstanding things to do, see the `todo list`_.
|
||||||
|
|
||||||
.. _hacking: hacking.html
|
.. _hacking: hacking.html
|
||||||
|
|
||||||
|
.. _`pull request`: https://github.com/arvidn/libtorrent
|
||||||
|
|
||||||
.. _`todo list`: todo.html
|
.. _`todo list`: todo.html
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ the library.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="features">
|
<div class="section" id="features">
|
||||||
<h1>features</h1>
|
<h1>features</h1>
|
||||||
<p>libtorrent is under active development. It is an ongoing project. Its
|
<p>libtorrent is an ongoing project under active development. Its
|
||||||
current state supports and includes the following features:</p>
|
current state supports and includes the following features:</p>
|
||||||
<div class="section" id="extensions">
|
<div class="section" id="extensions">
|
||||||
<h2>extensions</h2>
|
<h2>extensions</h2>
|
||||||
|
@ -113,22 +113,22 @@ ratio rather than downloading the torrent.</li>
|
||||||
<div class="section" id="disk-management">
|
<div class="section" id="disk-management">
|
||||||
<h2>disk management</h2>
|
<h2>disk management</h2>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>uses a separate disk I/O thread to not have the disk ever block on network or
|
<li>can use multipled disk I/O threads to not have the disk block network or
|
||||||
client interaction. (see <a class="reference external" href="manualref.html#threads">threads</a>).</li>
|
client interaction.</li>
|
||||||
<li>uses asynchronous disk I/O when available (overlapped I/O, kaio, and posix-aio)
|
<li>supports verifying the SHA-1 hash of pieces in multiple threads, to take
|
||||||
to make optimal use of disk bandwidth capacity</li>
|
|
||||||
<li>supports verifying the SHA-1 hash of pieces in multiple threads, to take full
|
|
||||||
advantage of multi core machines.</li>
|
advantage of multi core machines.</li>
|
||||||
<li>supports files > 2 gigabytes.</li>
|
<li>supports files > 2 gigabytes.</li>
|
||||||
<li>fast resume support, a way to get rid of the costly piece check at the
|
<li>fast resume support, a way to avoid the costly piece check at the
|
||||||
start of a resumed torrent. Saves the storage state, piece_picker state
|
start of a resumed torrent. Saves the storage state, piece_picker state
|
||||||
as well as all local peers in a separate fast-resume file.</li>
|
as well as all local peers in a fast-resume file.</li>
|
||||||
<li>has an adjustable read and write disk cache for improved disk throughput.</li>
|
<li>has an adjustable read and write disk cache for improved disk throughput.</li>
|
||||||
<li>queues torrents for file check, instead of checking all of them in parallel.</li>
|
<li>queues torrents for file check, instead of checking all of them in parallel.</li>
|
||||||
<li>does not have any requirements on the piece order in a torrent that it
|
<li>does not have any requirements on the piece order in a torrent that it
|
||||||
resumes. This means it can resume a torrent downloaded by any client.</li>
|
resumes. This means it can resume a torrent downloaded by any client.</li>
|
||||||
<li>seed mode, where the files on disk are assumed to be complete, and each
|
<li>seed mode, where the files on disk are assumed to be complete, and each
|
||||||
piece's hash is verified the first time it is requested.</li>
|
piece's hash is verified the first time it is requested.</li>
|
||||||
|
<li>implements an ARC disk cache, tuned for performing well under bittorrent work
|
||||||
|
loads</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="network">
|
<div class="section" id="network">
|
||||||
|
|
|
@ -21,7 +21,7 @@ the library.
|
||||||
features
|
features
|
||||||
========
|
========
|
||||||
|
|
||||||
libtorrent is under active development. It is an ongoing project. Its
|
libtorrent is an ongoing project under active development. Its
|
||||||
current state supports and includes the following features:
|
current state supports and includes the following features:
|
||||||
|
|
||||||
extensions
|
extensions
|
||||||
|
@ -59,24 +59,22 @@ extensions
|
||||||
disk management
|
disk management
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
* uses a separate disk I/O thread to not have the disk ever block on network or
|
* can use multipled disk I/O threads to not have the disk block network or
|
||||||
client interaction. (see threads_).
|
client interaction.
|
||||||
* uses asynchronous disk I/O when available (overlapped I/O, kaio, and posix-aio)
|
* supports verifying the SHA-1 hash of pieces in multiple threads, to take
|
||||||
to make optimal use of disk bandwidth capacity
|
|
||||||
* supports verifying the SHA-1 hash of pieces in multiple threads, to take full
|
|
||||||
advantage of multi core machines.
|
advantage of multi core machines.
|
||||||
* supports files > 2 gigabytes.
|
* supports files > 2 gigabytes.
|
||||||
* fast resume support, a way to get rid of the costly piece check at the
|
* fast resume support, a way to avoid the costly piece check at the
|
||||||
start of a resumed torrent. Saves the storage state, piece_picker state
|
start of a resumed torrent. Saves the storage state, piece_picker state
|
||||||
as well as all local peers in a separate fast-resume file.
|
as well as all local peers in a fast-resume file.
|
||||||
* has an adjustable read and write disk cache for improved disk throughput.
|
* has an adjustable read and write disk cache for improved disk throughput.
|
||||||
* queues torrents for file check, instead of checking all of them in parallel.
|
* queues torrents for file check, instead of checking all of them in parallel.
|
||||||
* does not have any requirements on the piece order in a torrent that it
|
* does not have any requirements on the piece order in a torrent that it
|
||||||
resumes. This means it can resume a torrent downloaded by any client.
|
resumes. This means it can resume a torrent downloaded by any client.
|
||||||
* seed mode, where the files on disk are assumed to be complete, and each
|
* seed mode, where the files on disk are assumed to be complete, and each
|
||||||
piece's hash is verified the first time it is requested.
|
piece's hash is verified the first time it is requested.
|
||||||
|
* implements an ARC disk cache, tuned for performing well under bittorrent work
|
||||||
.. _threads: manualref.html#threads
|
loads
|
||||||
|
|
||||||
network
|
network
|
||||||
-------
|
-------
|
||||||
|
|
|
@ -6,25 +6,25 @@
|
||||||
| "torrent_handle" +--------+ | |
|
| "torrent_handle" +--------+ | |
|
||||||
+---------------------+ "weak" | +--------------+ |
|
+---------------------+ "weak" | +--------------+ |
|
||||||
| | | "m_connections[]"
|
| | | "m_connections[]"
|
||||||
| | +-------------+----+
|
| | +-------------+ +--+
|
||||||
| | | |
|
| | | | |
|
||||||
"m_picker" v v | v "peers we are connected to"
|
"m_picker" v v | v v "peers we are connected to"
|
||||||
+----------------+ +----------++ +-------------------+
|
+----------------+ +----------++ +-------------------+
|
||||||
| "piece_picker" |<---+-+ "torrent" ++ +--+ "peer_connection" ++
|
| "piece_picker" |<---+-+ "torrent" ++ +--+ "peer_connection" ++
|
||||||
+----------------+ | ++----------+| | ++------------------+|
|
+----------------+ | ++----------+| | ++------------------+|
|
||||||
"m_torrent_file" | +-----------+ | +-------------------+
|
"m_torrent_file" | +-----------+ | +-------------------+
|
||||||
+-------------------+ | |
|
+-------------------+ | |
|
||||||
| "torrent_info" |<---+ | "m_socket"
|
| "torrent_info" |<---+ | "m_socket"
|
||||||
+-------------------+ | | +----------------------------+
|
+-------------------+ | | +----------------------------+
|
||||||
| +->| "socket_type (variant)" |
|
| +->| "socket_type (variant)" |
|
||||||
"m_peer_list" v | | "(TCP/uTP/SSL/socks5/...)" |
|
"m_peer_list" v | | "(TCP/uTP/SSL/socks5/...)" |
|
||||||
+--------------+ | +----------------------------+
|
+--------------+ | +----------------------------+
|
||||||
| "peer_list" | |
|
| "peer_list" | |
|
||||||
+------------+-+ | "m_peer_info"
|
+------------+-+ | "m_peer_info"
|
||||||
"list of all" | "m_peers[]" | "contains contact information"
|
"list of all" | "m_peers[]" | "contains contact information"
|
||||||
"peers we" | | "for peers we're not necessarily"
|
"peers we" | | "for peers we're not necessarily"
|
||||||
"know of" | v "connected to"
|
"know of" | v "connected to"
|
||||||
| +----------------+
|
| +----------------+
|
||||||
+---->| "torrent_peer" ++
|
+---->| "torrent_peer" ++
|
||||||
++---------------+|
|
++---------------+|
|
||||||
+----------------+
|
+----------------+
|
||||||
|
|
|
@ -47,14 +47,13 @@
|
||||||
</table>
|
</table>
|
||||||
<div id="librarySidebar"><ul class="simple">
|
<div id="librarySidebar"><ul class="simple">
|
||||||
<li><a class="reference external" href="https://github.com/arvidn/libtorrent/releases">download</a></li>
|
<li><a class="reference external" href="https://github.com/arvidn/libtorrent/releases">download</a></li>
|
||||||
<li><a class="reference external" href="https://sourceforge.net/projects/libtorrent/files/py-libtorrent/">download python binding</a></li>
|
|
||||||
<li><a class="reference external" href="features.html">features</a></li>
|
<li><a class="reference external" href="features.html">features</a></li>
|
||||||
<li><a class="reference external" href="contributing.html">contributing</a></li>
|
|
||||||
<li><a class="reference external" href="building.html">building libtorrent</a></li>
|
|
||||||
<li><a class="reference external" href="examples.html">examples</a></li>
|
<li><a class="reference external" href="examples.html">examples</a></li>
|
||||||
<li><a class="reference external" href="manual-ref.html">library overview</a></li>
|
<li><a class="reference external" href="manual-ref.html">overview</a></li>
|
||||||
<li><a class="reference external" href="reference.html">reference documentation</a></li>
|
<li><a class="reference external" href="reference.html">reference documentation</a></li>
|
||||||
<li><a class="reference external" href="troubleshooting.html">troubleshooting issues</a></li>
|
<li><a class="reference external" href="contributing.html">contributing</a></li>
|
||||||
|
<li><a class="reference external" href="building.html">building</a></li>
|
||||||
|
<li><a class="reference external" href="troubleshooting.html">troubleshooting</a></li>
|
||||||
<li><a class="reference external" href="tuning.html">tuning</a></li>
|
<li><a class="reference external" href="tuning.html">tuning</a></li>
|
||||||
<li><a class="reference external" href="client_test.png">screenshot</a></li>
|
<li><a class="reference external" href="client_test.png">screenshot</a></li>
|
||||||
<li><a class="reference external" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> (<a class="reference external" href="http://dir.gmane.org/gmane.network.bit-torrent.libtorrent">archive</a>)</li>
|
<li><a class="reference external" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> (<a class="reference external" href="http://dir.gmane.org/gmane.network.bit-torrent.libtorrent">archive</a>)</li>
|
||||||
|
@ -125,8 +124,8 @@ list or posted to the <a class="reference external" href="https://github.com/arv
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="acknowledgements">
|
<div class="section" id="acknowledgements">
|
||||||
<h2>Acknowledgements</h2>
|
<h2>Acknowledgements</h2>
|
||||||
<p>Written by Arvid Norberg. Copyright © 2003-2015</p>
|
<p>Written by Arvid Norberg. Copyright © 2003-2016</p>
|
||||||
<p>Contributions by Magnus Jonsson, Daniel Wallin and Cory Nelson</p>
|
<p>Contributions by Steven Siloti, Magnus Jonsson, Daniel Wallin and Cory Nelson</p>
|
||||||
<p>Thanks to Reimond Retz for bugfixes, suggestions and testing</p>
|
<p>Thanks to Reimond Retz for bugfixes, suggestions and testing</p>
|
||||||
<p>Thanks to <a class="reference external" href="http://www.cs.umu.se">Umeå University</a> for providing development and test hardware.</p>
|
<p>Thanks to <a class="reference external" href="http://www.cs.umu.se">Umeå University</a> for providing development and test hardware.</p>
|
||||||
<p>Project is hosted by <a class="reference external" href="https://www.github.com/arvidn/libtorrent">github</a>.</p>
|
<p>Project is hosted by <a class="reference external" href="https://www.github.com/arvidn/libtorrent">github</a>.</p>
|
||||||
|
|
|
@ -6,14 +6,13 @@
|
||||||
<div id="librarySidebar">
|
<div id="librarySidebar">
|
||||||
|
|
||||||
* download_
|
* download_
|
||||||
* `download python binding`_
|
|
||||||
* features_
|
* features_
|
||||||
* contributing_
|
|
||||||
* `building libtorrent`_
|
|
||||||
* examples_
|
* examples_
|
||||||
* `library overview`_
|
* overview_
|
||||||
* `reference documentation`_
|
* `reference documentation`_
|
||||||
* `troubleshooting issues`_
|
* contributing_
|
||||||
|
* building_
|
||||||
|
* troubleshooting_
|
||||||
* `tuning`_
|
* `tuning`_
|
||||||
* screenshot_
|
* screenshot_
|
||||||
* `mailing list`_ (archive_)
|
* `mailing list`_ (archive_)
|
||||||
|
@ -58,14 +57,13 @@ libtorrent
|
||||||
==========
|
==========
|
||||||
|
|
||||||
.. _download: https://github.com/arvidn/libtorrent/releases
|
.. _download: https://github.com/arvidn/libtorrent/releases
|
||||||
.. _`download python binding`: https://sourceforge.net/projects/libtorrent/files/py-libtorrent/
|
|
||||||
.. _features: features.html
|
.. _features: features.html
|
||||||
.. _contributing: contributing.html
|
.. _contributing: contributing.html
|
||||||
.. _`building libtorrent`: building.html
|
.. _building: building.html
|
||||||
.. _examples: examples.html
|
.. _examples: examples.html
|
||||||
.. _`library overview`: manual-ref.html
|
.. _overview: manual-ref.html
|
||||||
.. _`reference documentation`: reference.html
|
.. _`reference documentation`: reference.html
|
||||||
.. _`troubleshooting issues`: troubleshooting.html
|
.. _troubleshooting: troubleshooting.html
|
||||||
.. _`tuning`: tuning.html
|
.. _`tuning`: tuning.html
|
||||||
.. _screenshot: client_test.png
|
.. _screenshot: client_test.png
|
||||||
.. _`uTP`: utp.html
|
.. _`uTP`: utp.html
|
||||||
|
@ -104,7 +102,6 @@ The main goals of libtorrent are:
|
||||||
* to be memory efficient
|
* to be memory efficient
|
||||||
* to be very easy to use
|
* to be very easy to use
|
||||||
|
|
||||||
|
|
||||||
Donate
|
Donate
|
||||||
======
|
======
|
||||||
|
|
||||||
|
@ -147,9 +144,9 @@ list or posted to the `bug tracker`_.
|
||||||
Acknowledgements
|
Acknowledgements
|
||||||
================
|
================
|
||||||
|
|
||||||
Written by Arvid Norberg. Copyright |copy| 2003-2015
|
Written by Arvid Norberg. Copyright |copy| 2003-2016
|
||||||
|
|
||||||
Contributions by Magnus Jonsson, Daniel Wallin and Cory Nelson
|
Contributions by Steven Siloti, Magnus Jonsson, Daniel Wallin and Cory Nelson
|
||||||
|
|
||||||
Thanks to Reimond Retz for bugfixes, suggestions and testing
|
Thanks to Reimond Retz for bugfixes, suggestions and testing
|
||||||
|
|
||||||
|
|
|
@ -349,8 +349,8 @@ unchoking</h2><h4>../src/session_impl.cpp:4105</h4><pre style="background: #f6f6
|
||||||
if (pi && pi->optimistically_unchoked)
|
if (pi && pi->optimistically_unchoked)
|
||||||
{
|
{
|
||||||
m_stats_counters.inc_stats_counter(counters::num_peers_up_unchoked_optimistic, -1);
|
m_stats_counters.inc_stats_counter(counters::num_peers_up_unchoked_optimistic, -1);
|
||||||
</pre></td></tr><tr style="background: #fcc"><td>relevance 3</td><td><a href="javascript:expand(7)">../src/torrent.cpp:9593</a></td><td>this really needs to be moved to do_async_save_resume_data. flags need to be passed on</td></tr><tr id="7" style="display: none;" colspan="3"><td colspan="3"><h2>this really needs to be moved to do_async_save_resume_data.
|
</pre></td></tr><tr style="background: #fcc"><td>relevance 3</td><td><a href="javascript:expand(7)">../src/torrent.cpp:9611</a></td><td>this really needs to be moved to do_async_save_resume_data. flags need to be passed on</td></tr><tr id="7" style="display: none;" colspan="3"><td colspan="3"><h2>this really needs to be moved to do_async_save_resume_data.
|
||||||
flags need to be passed on</h2><h4>../src/torrent.cpp:9593</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> alerts().emplace_alert<save_resume_data_failed_alert>(get_handle()
|
flags need to be passed on</h2><h4>../src/torrent.cpp:9611</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> alerts().emplace_alert<save_resume_data_failed_alert>(get_handle()
|
||||||
, m_error);
|
, m_error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2579,9 +2579,9 @@ session host resolver interface</h2><h4>../src/torrent.cpp:4941</h4><pre style="
|
||||||
// disable super seeding for all peers
|
// disable super seeding for all peers
|
||||||
for (peer_iterator i = begin(); i != end(); ++i)
|
for (peer_iterator i = begin(); i != end(); ++i)
|
||||||
{
|
{
|
||||||
</pre></td></tr><tr style="background: #cfc"><td>relevance 2</td><td><a href="javascript:expand(52)">../src/torrent.cpp:8109</a></td><td>if peer is a really good peer, maybe we shouldn't disconnect it perhaps this logic should be disabled if we have too many idle peers (with some definition of idle)</td></tr><tr id="52" style="display: none;" colspan="3"><td colspan="3"><h2>if peer is a really good peer, maybe we shouldn't disconnect it
|
</pre></td></tr><tr style="background: #cfc"><td>relevance 2</td><td><a href="javascript:expand(52)">../src/torrent.cpp:8127</a></td><td>if peer is a really good peer, maybe we shouldn't disconnect it perhaps this logic should be disabled if we have too many idle peers (with some definition of idle)</td></tr><tr id="52" style="display: none;" colspan="3"><td colspan="3"><h2>if peer is a really good peer, maybe we shouldn't disconnect it
|
||||||
perhaps this logic should be disabled if we have too many idle peers
|
perhaps this logic should be disabled if we have too many idle peers
|
||||||
(with some definition of idle)</h2><h4>../src/torrent.cpp:8109</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;">#ifndef TORRENT_DISABLE_LOGGING
|
(with some definition of idle)</h2><h4>../src/torrent.cpp:8127</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;">#ifndef TORRENT_DISABLE_LOGGING
|
||||||
debug_log("incoming peer (%d)", int(m_connections.size()));
|
debug_log("incoming peer (%d)", int(m_connections.size()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -4341,9 +4341,9 @@ it may pose an issue when downgrading though</h2><h4>../src/torrent.cpp:7227</h4
|
||||||
|
|
||||||
// write have bitmask
|
// write have bitmask
|
||||||
// the pieces string has one byte per piece. Each
|
// the pieces string has one byte per piece. Each
|
||||||
</pre></td></tr><tr style="background: #ccf"><td>relevance 1</td><td><a href="javascript:expand(87)">../src/torrent.cpp:8453</a></td><td>should disconnect all peers that have the pieces we have not just seeds. It would be pretty expensive to check all pieces for all peers though</td></tr><tr id="87" style="display: none;" colspan="3"><td colspan="3"><h2>should disconnect all peers that have the pieces we have
|
</pre></td></tr><tr style="background: #ccf"><td>relevance 1</td><td><a href="javascript:expand(87)">../src/torrent.cpp:8471</a></td><td>should disconnect all peers that have the pieces we have not just seeds. It would be pretty expensive to check all pieces for all peers though</td></tr><tr id="87" style="display: none;" colspan="3"><td colspan="3"><h2>should disconnect all peers that have the pieces we have
|
||||||
not just seeds. It would be pretty expensive to check all pieces
|
not just seeds. It would be pretty expensive to check all pieces
|
||||||
for all peers though</h2><h4>../src/torrent.cpp:8453</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;">
|
for all peers though</h2><h4>../src/torrent.cpp:8471</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;">
|
||||||
set_state(torrent_status::finished);
|
set_state(torrent_status::finished);
|
||||||
set_queue_position(-1);
|
set_queue_position(-1);
|
||||||
|
|
||||||
|
@ -8392,25 +8392,25 @@ no one uses merkle torrents</h2><h4>../src/torrent.cpp:7059</h4><pre style="back
|
||||||
if (piece_priority && piece_priority.string_length()
|
if (piece_priority && piece_priority.string_length()
|
||||||
== m_torrent_file->num_pieces())
|
== m_torrent_file->num_pieces())
|
||||||
{
|
{
|
||||||
</pre></td></tr><tr style="background: #ccc"><td>relevance 0</td><td><a href="javascript:expand(222)">../src/torrent.cpp:7285</a></td><td>make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance. using file_base</td></tr><tr id="222" style="display: none;" colspan="3"><td colspan="3"><h2>make this more generic to not just work if files have been
|
</pre></td></tr><tr style="background: #ccc"><td>relevance 0</td><td><a href="javascript:expand(222)">../src/torrent.cpp:7303</a></td><td>make this more generic to not just work if files have been renamed, but also if they have been merged into a single file for instance. using file_base</td></tr><tr id="222" style="display: none;" colspan="3"><td colspan="3"><h2>make this more generic to not just work if files have been
|
||||||
renamed, but also if they have been merged into a single file for instance.
|
renamed, but also if they have been merged into a single file for instance.
|
||||||
using file_base</h2><h4>../src/torrent.cpp:7285</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> pieces.resize(m_torrent_file->num_pieces());
|
using file_base</h2><h4>../src/torrent.cpp:7303</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> if (!has_picker())
|
||||||
if (!has_picker())
|
{
|
||||||
{
|
std::memset(&pieces[0], m_have_all, pieces.size());
|
||||||
std::memset(&pieces[0], m_have_all, pieces.size());
|
}
|
||||||
}
|
else if (has_picker())
|
||||||
else if (has_picker())
|
{
|
||||||
{
|
for (int i = 0, end(pieces.size()); i < end; ++i)
|
||||||
for (int i = 0, end(pieces.size()); i < end; ++i)
|
pieces[i] = m_picker->have_piece(i) ? 1 : 0;
|
||||||
pieces[i] = m_picker->have_piece(i) ? 1 : 0;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (m_seed_mode)
|
if (m_seed_mode)
|
||||||
{
|
{
|
||||||
TORRENT_ASSERT(m_verified.size() == pieces.size());
|
TORRENT_ASSERT(m_verified.size() == pieces.size());
|
||||||
TORRENT_ASSERT(m_verifying.size() == pieces.size());
|
TORRENT_ASSERT(m_verifying.size() == pieces.size());
|
||||||
for (int i = 0, end(pieces.size()); i < end; ++i)
|
for (int i = 0, end(pieces.size()); i < end; ++i)
|
||||||
pieces[i] |= m_verified[i] ? 2 : 0;
|
pieces[i] |= m_verified[i] ? 2 : 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// write renamed files
|
// write renamed files
|
||||||
|
@ -8445,9 +8445,9 @@ using file_base</h2><h4>../src/torrent.cpp:7285</h4><pre style="background: #f6f
|
||||||
{
|
{
|
||||||
error_code ec;
|
error_code ec;
|
||||||
torrent_peer const* p = *i;
|
torrent_peer const* p = *i;
|
||||||
</pre></td></tr><tr style="background: #ccc"><td>relevance 0</td><td><a href="javascript:expand(223)">../src/torrent.cpp:9541</a></td><td>add a flag to ignore stats, and only care about resume data for content. For unchanged files, don't trigger a load of the metadata just to save an empty resume data file</td></tr><tr id="223" style="display: none;" colspan="3"><td colspan="3"><h2>add a flag to ignore stats, and only care about resume data for
|
</pre></td></tr><tr style="background: #ccc"><td>relevance 0</td><td><a href="javascript:expand(223)">../src/torrent.cpp:9559</a></td><td>add a flag to ignore stats, and only care about resume data for content. For unchanged files, don't trigger a load of the metadata just to save an empty resume data file</td></tr><tr id="223" style="display: none;" colspan="3"><td colspan="3"><h2>add a flag to ignore stats, and only care about resume data for
|
||||||
content. For unchanged files, don't trigger a load of the metadata
|
content. For unchanged files, don't trigger a load of the metadata
|
||||||
just to save an empty resume data file</h2><h4>../src/torrent.cpp:9541</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> if (m_complete != 0xffffff) seeds = m_complete;
|
just to save an empty resume data file</h2><h4>../src/torrent.cpp:9559</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> if (m_complete != 0xffffff) seeds = m_complete;
|
||||||
else seeds = m_peer_list ? m_peer_list->num_seeds() : 0;
|
else seeds = m_peer_list ? m_peer_list->num_seeds() : 0;
|
||||||
|
|
||||||
if (m_incomplete != 0xffffff) downloaders = m_incomplete;
|
if (m_incomplete != 0xffffff) downloaders = m_incomplete;
|
||||||
|
@ -8466,7 +8466,7 @@ just to save an empty resume data file</h2><h4>../src/torrent.cpp:9541</h4><pre
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is an async operation triggered by the client
|
// this is an async operation triggered by the client
|
||||||
<div style="background: #ffff00" width="100%"> void torrent::save_resume_data(int flags)
|
<div style="background: #ffff00" width="100%"> void torrent::save_resume_data(int flags)
|
||||||
</div> {
|
</div> {
|
||||||
TORRENT_ASSERT(is_single_thread());
|
TORRENT_ASSERT(is_single_thread());
|
||||||
|
@ -8498,8 +8498,8 @@ just to save an empty resume data file</h2><h4>../src/torrent.cpp:9541</h4><pre
|
||||||
{
|
{
|
||||||
alerts().emplace_alert<save_resume_data_failed_alert>(get_handle()
|
alerts().emplace_alert<save_resume_data_failed_alert>(get_handle()
|
||||||
, m_error);
|
, m_error);
|
||||||
</pre></td></tr><tr style="background: #ccc"><td>relevance 0</td><td><a href="javascript:expand(224)">../src/torrent.cpp:11168</a></td><td>instead of resorting the whole list, insert the peers directly into the right place</td></tr><tr id="224" style="display: none;" colspan="3"><td colspan="3"><h2>instead of resorting the whole list, insert the peers
|
</pre></td></tr><tr style="background: #ccc"><td>relevance 0</td><td><a href="javascript:expand(224)">../src/torrent.cpp:11186</a></td><td>instead of resorting the whole list, insert the peers directly into the right place</td></tr><tr id="224" style="display: none;" colspan="3"><td colspan="3"><h2>instead of resorting the whole list, insert the peers
|
||||||
directly into the right place</h2><h4>../src/torrent.cpp:11168</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> printf("timed out [average-piece-time: %d ms ]\n"
|
directly into the right place</h2><h4>../src/torrent.cpp:11186</h4><pre style="background: #f6f6f6; border: solid 1px #ddd;"> printf("timed out [average-piece-time: %d ms ]\n"
|
||||||
, m_average_piece_time);
|
, m_average_piece_time);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue