fixed an assert in teh web seed downloader
This commit is contained in:
parent
ae4267e0a0
commit
1b46fb9e1b
|
@ -199,7 +199,7 @@ namespace libtorrent
|
|||
|
||||
void get_downloaders(std::vector<tcp::endpoint>& d, int index) const;
|
||||
|
||||
const std::vector<downloading_piece>& get_download_queue() const
|
||||
std::vector<downloading_piece> const& get_download_queue() const
|
||||
{ return m_downloads; }
|
||||
|
||||
boost::optional<tcp::endpoint> get_downloader(piece_block block) const;
|
||||
|
|
|
@ -1127,8 +1127,11 @@ namespace libtorrent
|
|||
assert(verified);
|
||||
t->completed();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
t->check_invariant();
|
||||
#endif
|
||||
}
|
||||
|
||||
// -----------------------------
|
||||
|
|
|
@ -979,6 +979,13 @@ namespace libtorrent
|
|||
p->second->received_valid_data(index);
|
||||
}
|
||||
|
||||
if (!m_have_pieces[index])
|
||||
m_num_pieces++;
|
||||
m_have_pieces[index] = true;
|
||||
|
||||
assert(std::accumulate(m_have_pieces.begin(), m_have_pieces.end(), 0)
|
||||
== m_num_pieces);
|
||||
|
||||
m_picker->we_have(index);
|
||||
for (peer_iterator i = m_connections.begin(); i != m_connections.end(); ++i)
|
||||
i->second->announce_piece(index);
|
||||
|
@ -2151,13 +2158,6 @@ namespace libtorrent
|
|||
if (m_torrent_file.hash_for_piece(piece_index) != digest)
|
||||
return false;
|
||||
|
||||
if (!m_have_pieces[piece_index])
|
||||
m_num_pieces++;
|
||||
m_have_pieces[piece_index] = true;
|
||||
|
||||
assert(std::accumulate(m_have_pieces.begin(), m_have_pieces.end(), 0)
|
||||
== m_num_pieces);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -395,18 +395,16 @@ namespace libtorrent
|
|||
int copy_size = std::min(front_request.length - int(m_piece.size())
|
||||
, http_body.left());
|
||||
std::copy(http_body.begin, http_body.begin + copy_size, std::back_inserter(m_piece));
|
||||
assert(int(m_piece.size() <= front_request.length));
|
||||
http_body.begin += copy_size;
|
||||
if (int(m_piece.size()) == front_request.length)
|
||||
{
|
||||
int piece_size = int(m_piece.size());
|
||||
if (piece_size < front_request.length)
|
||||
return;
|
||||
|
||||
m_requests.pop_front();
|
||||
incoming_piece(front_request, &m_piece[0]);
|
||||
m_piece.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// report all received blocks to the bittorrent engine
|
||||
while (!m_requests.empty()
|
||||
|
@ -485,10 +483,6 @@ namespace libtorrent
|
|||
}
|
||||
}
|
||||
|
||||
// --------------------------
|
||||
// SEND DATA
|
||||
// --------------------------
|
||||
|
||||
void web_peer_connection::get_peer_info(peer_info& p) const
|
||||
{
|
||||
assert(!associated_torrent().expired());
|
||||
|
|
Loading…
Reference in New Issue