*** empty log message ***
This commit is contained in:
parent
1bc22888a8
commit
de63a70323
|
@ -177,17 +177,11 @@ send have messages to peers that already has the piece. This saves bandwidth.</l
|
|||
means it can resume a torrent downloaded by any client.</li>
|
||||
<li>adjusts the length of the request queue depending on download rate.</li>
|
||||
<li>supports the <tt class="docutils literal"><span class="pre">compact=1</span></tt> tracker parameter.</li>
|
||||
<li>selective downloading. The ability to select which parts of a torrent you
|
||||
want to download.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>Functions that are yet to be implemented:</p>
|
||||
<blockquote>
|
||||
<ul class="simple">
|
||||
<li>better identification of peers that send bad data</li>
|
||||
<li>ip-filters</li>
|
||||
<li>file-level priority</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>libtorrent is portable at least among windows, macosx, and other UNIX-systems. It uses Boost.Thread,
|
||||
<p>libtorrent is portable at least among Windows, MacOSX and other UNIX-systems. It uses Boost.Thread,
|
||||
Boost.Filesystem, Boost.Date_time and various other boost libraries as well as zlib.</p>
|
||||
<p>libtorrent has been successfully compiled and tested on:</p>
|
||||
<blockquote>
|
||||
|
|
|
@ -50,6 +50,8 @@ The current state includes the following features:
|
|||
means it can resume a torrent downloaded by any client.
|
||||
* adjusts the length of the request queue depending on download rate.
|
||||
* supports the ``compact=1`` tracker parameter.
|
||||
* selective downloading. The ability to select which parts of a torrent you
|
||||
want to download.
|
||||
|
||||
__ http://home.elp.rr.com/tur/multitracker-spec.txt
|
||||
.. _Azureus: http://azureus.sourceforge.net
|
||||
|
@ -57,13 +59,7 @@ __ http://nolar.com/azureus/extended.htm
|
|||
__ udp_tracker_protocol.html
|
||||
|
||||
|
||||
Functions that are yet to be implemented:
|
||||
|
||||
* better identification of peers that send bad data
|
||||
* ip-filters
|
||||
* file-level priority
|
||||
|
||||
libtorrent is portable at least among windows, macosx, and other UNIX-systems. It uses Boost.Thread,
|
||||
libtorrent is portable at least among Windows, MacOSX and other UNIX-systems. It uses Boost.Thread,
|
||||
Boost.Filesystem, Boost.Date_time and various other boost libraries as well as zlib.
|
||||
|
||||
libtorrent has been successfully compiled and tested on:
|
||||
|
|
|
@ -64,7 +64,7 @@ namespace
|
|||
int decode_digit(char c)
|
||||
{
|
||||
if (std::isdigit(c)) return c - '0';
|
||||
return std::toupper(c) - 'A' + 10;
|
||||
return unsigned(c) - 'A' + 10;
|
||||
}
|
||||
|
||||
// takes a peer id and returns a valid boost::optional
|
||||
|
@ -75,9 +75,9 @@ namespace
|
|||
{
|
||||
fingerprint ret("..", 0, 0, 0, 0);
|
||||
|
||||
if (id[0] != '-' || !std::isprint(id[1]) || !std::isprint(id[2])
|
||||
|| !std::isalnum(id[3]) || !std::isalnum(id[4])
|
||||
|| !std::isalnum(id[5]) || !std::isalnum(id[6])
|
||||
if (id[0] != '-' || !std::isprint(id[1]) || (id[2] < '0')
|
||||
|| (id[3] < '0') || (id[4] < '0')
|
||||
|| (id[5] < '0') || (id[6] < '0')
|
||||
|| id[7] != '-')
|
||||
return boost::optional<fingerprint>();
|
||||
|
||||
|
@ -102,8 +102,8 @@ namespace
|
|||
|
||||
if (std::equal(id.begin()+4, id.begin()+8, "----"))
|
||||
{
|
||||
if (!std::isalnum(id[1]) || !std::isalnum(id[2])
|
||||
|| !std::isalnum(id[3]))
|
||||
if (!std::isalnum(id[1]) || (id[2] < '0')
|
||||
|| (id[3] < '0'))
|
||||
return boost::optional<fingerprint>();
|
||||
ret.major_version = decode_digit(id[1]);
|
||||
ret.minor_version = decode_digit(id[2]);
|
||||
|
|
|
@ -2081,6 +2081,7 @@ namespace libtorrent
|
|||
m_statistics.received_bytes(0, received);
|
||||
if (m_recv_pos < m_packet_size) break;
|
||||
assert(m_recv_pos == m_packet_size);
|
||||
assert(m_packet_size == 20);
|
||||
|
||||
#ifdef TORRENT_VERBOSE_LOGGING
|
||||
{
|
||||
|
|
|
@ -300,7 +300,7 @@ namespace libtorrent
|
|||
m_currently_trying_tracker = 0;
|
||||
|
||||
m_duration = interval;
|
||||
if (peer_list.empty())
|
||||
if (peer_list.empty() && !is_seed())
|
||||
{
|
||||
// if the peer list is empty, we should contact the
|
||||
// tracker soon again to see if there are any peers
|
||||
|
|
Loading…
Reference in New Issue