diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-02 12:31:04 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-02 12:31:04 +0000 |
| commit | c46b6055c6a25d50a717d01e293f7ad8a2833be2 (patch) | |
| tree | fc8bafb980c232d6d4d0dc83a90c662281be0193 /src/UTPexExtensionMessage.cc | |
| parent | 46f0e018d462f2b145ea180b0daa530831ea09b0 (diff) | |
2008-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Moved threthold values to UTPexExtensionMessage.
* src/DefaultBtInteractive.cc
* src/Peer.cc
* src/Peer.h
* src/UTPexExtensionMessage.cc
* src/UTPexExtensionMessage.h
* test/UTPexExtensionMessageTest.cc
Diffstat (limited to 'src/UTPexExtensionMessage.cc')
| -rw-r--r-- | src/UTPexExtensionMessage.cc | 55 |
1 files changed, 50 insertions, 5 deletions
diff --git a/src/UTPexExtensionMessage.cc b/src/UTPexExtensionMessage.cc index 7dcf5365..fb7bfd7b 100644 --- a/src/UTPexExtensionMessage.cc +++ b/src/UTPexExtensionMessage.cc @@ -53,7 +53,10 @@ namespace aria2 { const std::string UTPexExtensionMessage::EXTENSION_NAME = "ut_pex"; UTPexExtensionMessage::UTPexExtensionMessage(uint8_t extensionMessageID): - _extensionMessageID(extensionMessageID) {} + _extensionMessageID(extensionMessageID), + _interval(DEFAULT_INTERVAL), + _maxFreshPeer(DEFAULT_MAX_FRESH_PEER), + _maxDroppedPeer(DEFAULT_MAX_DROPPED_PEER) {} UTPexExtensionMessage::~UTPexExtensionMessage() {} @@ -96,9 +99,15 @@ void UTPexExtensionMessage::doReceivedAction() PEER_STORAGE(_btContext)->addPeer(_freshPeers); } -void UTPexExtensionMessage::addFreshPeer(const PeerHandle& peer) +bool UTPexExtensionMessage::addFreshPeer(const PeerHandle& peer) { - _freshPeers.push_back(peer); + if(!peer->isIncomingPeer() && + !peer->getFirstContactTime().elapsed(_interval)) { + _freshPeers.push_back(peer); + return true; + } else { + return false; + } } const Peers& UTPexExtensionMessage::getFreshPeers() const @@ -106,9 +115,20 @@ const Peers& UTPexExtensionMessage::getFreshPeers() const return _freshPeers; } -void UTPexExtensionMessage::addDroppedPeer(const PeerHandle& peer) +bool UTPexExtensionMessage::freshPeersAreFull() const { - _droppedPeers.push_back(peer); + return _freshPeers.size() >= _maxFreshPeer; +} + +bool UTPexExtensionMessage::addDroppedPeer(const PeerHandle& peer) +{ + if(!peer->isIncomingPeer() && + !peer->getBadConditionStartTime().elapsed(_interval)) { + _droppedPeers.push_back(peer); + return true; + } else { + return false; + } } const Peers& UTPexExtensionMessage::getDroppedPeers() const @@ -116,6 +136,31 @@ const Peers& UTPexExtensionMessage::getDroppedPeers() const return _droppedPeers; } +bool UTPexExtensionMessage::droppedPeersAreFull() const +{ + return _droppedPeers.size() >= _maxDroppedPeer; +} + +void UTPexExtensionMessage::setMaxFreshPeer(size_t maxFreshPeer) +{ + _maxFreshPeer = maxFreshPeer; +} + +size_t UTPexExtensionMessage::getMaxFreshPeer() const +{ + return _maxFreshPeer; +} + +void UTPexExtensionMessage::setMaxDroppedPeer(size_t maxDroppedPeer) +{ + _maxDroppedPeer = maxDroppedPeer; +} + +size_t UTPexExtensionMessage::getMaxDroppedPeer() const +{ + return _maxDroppedPeer; +} + void UTPexExtensionMessage::setBtContext(const BtContextHandle& btContext) { _btContext = btContext; |
