From a722500d62010b80d9ce5af91b11755a7d31589b Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 26 Jan 2013 19:00:03 +0900 Subject: [PATCH] Make DefaultPeerStorage::droppedPeers_ distinct --- src/DefaultPeerStorage.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 >& peers) void DefaultPeerStorage::addDroppedPeer(const SharedHandle& peer) { - // TODO Make unique + // Make sure that duplicated peers exist in droppedPeers_. If + // exists, erase older one. + for(std::deque >::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();