diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-02-07 21:38:51 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-02-07 21:38:51 +0900 |
| commit | 97fde60f3e9a0e3f2a28bcdccf6e003ac7c04740 (patch) | |
| tree | 2c0f210904c2577540fe491d25e6f9e151829a41 /src | |
| parent | 656f8cf9013b2668d3a8682bb2ba9f092d9a9732 (diff) | |
Added upper limit of the number of peer added by each addPeer(vector) call.
Diffstat (limited to 'src')
| -rw-r--r-- | src/DefaultPeerStorage.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/DefaultPeerStorage.cc b/src/DefaultPeerStorage.cc index 1501288d..8c8141e9 100644 --- a/src/DefaultPeerStorage.cc +++ b/src/DefaultPeerStorage.cc @@ -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" |
