*** empty log message ***
This commit is contained in:
@@ -1267,6 +1267,7 @@ struct peer_info
|
|||||||
size_type total_upload;
|
size_type total_upload;
|
||||||
peer_id id;
|
peer_id id;
|
||||||
std::vector<bool> pieces;
|
std::vector<bool> pieces;
|
||||||
|
bool seed;
|
||||||
int upload_limit;
|
int upload_limit;
|
||||||
int upload_ceiling;
|
int upload_ceiling;
|
||||||
|
|
||||||
@@ -1326,6 +1327,7 @@ is using. See identify_client()_</p>
|
|||||||
<p><tt class="literal"><span class="pre">pieces</span></tt> is a vector of booleans that has as many entries as there are pieces
|
<p><tt class="literal"><span class="pre">pieces</span></tt> is a vector of booleans that has as many entries as there are pieces
|
||||||
in the torrent. Each boolean tells you if the peer has that piece (if it's set to true)
|
in the torrent. Each boolean tells you if the peer has that piece (if it's set to true)
|
||||||
or if the peer miss that piece (set to false).</p>
|
or if the peer miss that piece (set to false).</p>
|
||||||
|
<p><tt class="literal"><span class="pre">seed</span></tt> is true if this peer is a seed.</p>
|
||||||
<p><tt class="literal"><span class="pre">upload_limit</span></tt> is the number of bytes per second we are allowed to send to this
|
<p><tt class="literal"><span class="pre">upload_limit</span></tt> is the number of bytes per second we are allowed to send to this
|
||||||
peer every second. It may be -1 if there's no limit. The upload limits of all peers
|
peer every second. It may be -1 if there's no limit. The upload limits of all peers
|
||||||
should sum up to the upload limit set by <tt class="literal"><span class="pre">session::set_upload_limit</span></tt>.</p>
|
should sum up to the upload limit set by <tt class="literal"><span class="pre">session::set_upload_limit</span></tt>.</p>
|
||||||
|
@@ -1238,6 +1238,7 @@ It contains the following fields::
|
|||||||
size_type total_upload;
|
size_type total_upload;
|
||||||
peer_id id;
|
peer_id id;
|
||||||
std::vector<bool> pieces;
|
std::vector<bool> pieces;
|
||||||
|
bool seed;
|
||||||
int upload_limit;
|
int upload_limit;
|
||||||
int upload_ceiling;
|
int upload_ceiling;
|
||||||
|
|
||||||
@@ -1293,6 +1294,8 @@ is using. See identify_client()_
|
|||||||
in the torrent. Each boolean tells you if the peer has that piece (if it's set to true)
|
in the torrent. Each boolean tells you if the peer has that piece (if it's set to true)
|
||||||
or if the peer miss that piece (set to false).
|
or if the peer miss that piece (set to false).
|
||||||
|
|
||||||
|
``seed`` is true if this peer is a seed.
|
||||||
|
|
||||||
``upload_limit`` is the number of bytes per second we are allowed to send to this
|
``upload_limit`` is the number of bytes per second we are allowed to send to this
|
||||||
peer every second. It may be -1 if there's no limit. The upload limits of all peers
|
peer every second. It may be -1 if there's no limit. The upload limits of all peers
|
||||||
should sum up to the upload limit set by ``session::set_upload_limit``.
|
should sum up to the upload limit set by ``session::set_upload_limit``.
|
||||||
|
@@ -60,6 +60,7 @@ namespace libtorrent
|
|||||||
size_type total_upload;
|
size_type total_upload;
|
||||||
peer_id id;
|
peer_id id;
|
||||||
std::vector<bool> pieces;
|
std::vector<bool> pieces;
|
||||||
|
bool seed; // true if this is a seed
|
||||||
int upload_limit; // from peer_connection
|
int upload_limit; // from peer_connection
|
||||||
int upload_ceiling; // from the global upload limiter
|
int upload_ceiling; // from the global upload limiter
|
||||||
|
|
||||||
|
@@ -246,6 +246,9 @@ namespace libtorrent
|
|||||||
|
|
||||||
void entry::sort()
|
void entry::sort()
|
||||||
{
|
{
|
||||||
|
#if (defined(_MSC_VER) && _MSC_VER < 1300)
|
||||||
|
assert(false);
|
||||||
|
#else
|
||||||
using boost::bind;
|
using boost::bind;
|
||||||
if (type() == dictionary_t)
|
if (type() == dictionary_t)
|
||||||
{
|
{
|
||||||
@@ -254,6 +257,7 @@ namespace libtorrent
|
|||||||
, bind(&entry::dictionary_type::value_type::first, _1)
|
, bind(&entry::dictionary_type::value_type::first, _1)
|
||||||
, bind(&entry::dictionary_type::value_type::first, _2)));
|
, bind(&entry::dictionary_type::value_type::first, _2)));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void entry::print(std::ostream& os, int indent) const
|
void entry::print(std::ostream& os, int indent) const
|
||||||
|
@@ -2370,7 +2370,9 @@ namespace libtorrent
|
|||||||
|
|
||||||
bool peer_connection::is_seed() const
|
bool peer_connection::is_seed() const
|
||||||
{
|
{
|
||||||
return m_num_pieces == (int)m_have_piece.size();
|
// if m_num_pieces == 0, we probably doesn't have the
|
||||||
|
// metadata yet.
|
||||||
|
return m_num_pieces == (int)m_have_piece.size() && m_num_pieces > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void peer_connection::send_buffer_updated()
|
void peer_connection::send_buffer_updated()
|
||||||
|
@@ -232,9 +232,9 @@ namespace libtorrent
|
|||||||
assert(m_torrent_file.is_valid());
|
assert(m_torrent_file.is_valid());
|
||||||
|
|
||||||
m_have_pieces.resize(m_torrent_file.num_pieces(), false);
|
m_have_pieces.resize(m_torrent_file.num_pieces(), false);
|
||||||
m_storage.reset(new piece_manager(m_torrent_file, m_save_path));
|
m_storage = std::auto_ptr<piece_manager>(new piece_manager(m_torrent_file, m_save_path));
|
||||||
m_block_size = calculate_block_size(m_torrent_file);
|
m_block_size = calculate_block_size(m_torrent_file);
|
||||||
m_picker.reset(new piece_picker(
|
m_picker = std::auto_ptr<piece_picker>(new piece_picker(
|
||||||
static_cast<int>(m_torrent_file.piece_length() / m_block_size)
|
static_cast<int>(m_torrent_file.piece_length() / m_block_size)
|
||||||
, static_cast<int>((m_torrent_file.total_size()+m_block_size-1)/m_block_size)));
|
, static_cast<int>((m_torrent_file.total_size()+m_block_size-1)/m_block_size)));
|
||||||
}
|
}
|
||||||
@@ -1000,7 +1000,7 @@ namespace libtorrent
|
|||||||
|
|
||||||
int torrent::num_seeds() const
|
int torrent::num_seeds() const
|
||||||
{
|
{
|
||||||
return (int)count_if(m_connections.begin(), m_connections.end(),
|
return (int)std::count_if(m_connections.begin(), m_connections.end(),
|
||||||
boost::bind(&peer_connection::is_seed,
|
boost::bind(&peer_connection::is_seed,
|
||||||
boost::bind(&std::map<address,peer_connection*>::value_type::second, _1)));
|
boost::bind(&std::map<address,peer_connection*>::value_type::second, _1)));
|
||||||
}
|
}
|
||||||
|
@@ -607,6 +607,7 @@ namespace libtorrent
|
|||||||
if (peer->is_local()) p.flags |= peer_info::local_connection;
|
if (peer->is_local()) p.flags |= peer_info::local_connection;
|
||||||
|
|
||||||
p.pieces = peer->get_bitfield();
|
p.pieces = peer->get_bitfield();
|
||||||
|
p.seed = peer->is_seed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user