diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-01-26 19:00:03 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-01-26 19:00:03 +0900 |
| commit | a722500d62010b80d9ce5af91b11755a7d31589b (patch) | |
| tree | a5a515536c99fa3e44281be5987411f6dbb8c01e /src/DefaultPeerStorage.cc | |
| parent | 3a19b65dd77ff7a71c8ad277ec9ba3e17de7ee2d (diff) | |
Make DefaultPeerStorage::droppedPeers_ distinct
Diffstat (limited to 'src/DefaultPeerStorage.cc')
| -rw-r--r-- | src/DefaultPeerStorage.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/DefaultPeerStorage.cc b/src/DefaultPeerStorage.cc index a6bb908d..95a05a8c 100644 --- a/src/DefaultPeerStorage.cc +++ b/src/DefaultPeerStorage.cc @@ -146,7 +146,16 @@ void DefaultPeerStorage::addPeer(const std::vector<SharedHandle<Peer> >& peers) void DefaultPeerStorage::addDroppedPeer(const SharedHandle<Peer>& peer) { - // TODO Make unique + // Make sure that duplicated peers exist in droppedPeers_. If + // exists, erase older one. + for(std::deque<SharedHandle<Peer> >::iterator i = droppedPeers_.begin(), + eoi = droppedPeers_.end(); i != eoi; ++i) { + if((*i)->getIPAddress() == peer->getIPAddress() && + (*i)->getPort() == peer->getPort()) { + droppedPeers_.erase(i); + break; + } + } droppedPeers_.push_front(peer); if(droppedPeers_.size() > 50) { droppedPeers_.pop_back(); |
