Added upper limit of the number of peer added by each addPeer(vector) call.

pull/1/head
Tatsuhiro Tsujikawa 2011-02-07 21:38:51 +09:00
parent 656f8cf901
commit 97fde60f3e
1 changed files with 6 additions and 2 deletions

View File

@ -51,7 +51,10 @@
namespace aria2 {
namespace {
const int MAX_PEER_LIST_SIZE = 1024;
const size_t MAX_PEER_LIST_SIZE = 1024;
const size_t MAX_PEER_LIST_UPDATE = 100;
} // namespace
DefaultPeerStorage::DefaultPeerStorage()
@ -110,8 +113,9 @@ bool DefaultPeerStorage::addPeer(const SharedHandle<Peer>& peer) {
void DefaultPeerStorage::addPeer(const std::vector<SharedHandle<Peer> >& peers)
{
size_t added = 0;
size_t addMax = std::min(maxPeerListSize_, MAX_PEER_LIST_UPDATE);
for(std::vector<SharedHandle<Peer> >::const_iterator itr = peers.begin(),
eoi = peers.end(); itr != eoi && added < maxPeerListSize_; ++itr) {
eoi = peers.end(); itr != eoi && added < addMax; ++itr) {
const SharedHandle<Peer>& peer = *itr;
if(isPeerAlreadyAdded(peer)) {
A2_LOG_DEBUG(fmt("Adding %s:%u is rejected because it has been already"