mirror of https://github.com/aria2/aria2
Make DefaultPeerStorage::droppedPeers_ distinct
parent
3a19b65dd7
commit
a722500d62
|
@ -146,7 +146,16 @@ void DefaultPeerStorage::addPeer(const std::vector<SharedHandle<Peer> >& peers)
|
||||||
|
|
||||||
void DefaultPeerStorage::addDroppedPeer(const SharedHandle<Peer>& peer)
|
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);
|
droppedPeers_.push_front(peer);
|
||||||
if(droppedPeers_.size() > 50) {
|
if(droppedPeers_.size() > 50) {
|
||||||
droppedPeers_.pop_back();
|
droppedPeers_.pop_back();
|
||||||
|
|
Loading…
Reference in New Issue