summaryrefslogtreecommitdiff
path: root/src/UTPexExtensionMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-02 12:31:04 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-02 12:31:04 +0000
commitc46b6055c6a25d50a717d01e293f7ad8a2833be2 (patch)
treefc8bafb980c232d6d4d0dc83a90c662281be0193 /src/UTPexExtensionMessage.cc
parent46f0e018d462f2b145ea180b0daa530831ea09b0 (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.cc55
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;