diff --git a/ChangeLog b/ChangeLog index c96bd2c8..fc36d99f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2008-06-05 Tatsuhiro Tsujikawa + + Renamed BtRuntime::lessThanMinPeers() and BtRuntime::lessThanEqMinPeers. + Made MAX_PEERS and MIN_PEERS static const members of BtRuntime. + * src/ActivePeerConnectionCommand.cc + * src/BtConstants.h + * src/BtRuntime.h + * src/DHTGetPeersCommand.cc + * src/DefaultBtAnnounce.cc + * src/DefaultPeerStorage.cc: Calculate maxPeerListSize based on + BtRuntime::MAX_PEERS. + * src/DefaultPeerStorage.h + * src/InitiatorMSEHandshakeCommand.cc + * src/PeerInitiateConnectionCommand.cc + * src/PeerInteractionCommand.cc + * src/PeerReceiveHandshakeCommand.cc + * src/TrackerWatcherCommand.cc + 2008-06-05 Tatsuhiro Tsujikawa Always Connect to _numNewConnection diff --git a/src/ActivePeerConnectionCommand.cc b/src/ActivePeerConnectionCommand.cc index 7b8fc871..ed66412a 100644 --- a/src/ActivePeerConnectionCommand.cc +++ b/src/ActivePeerConnectionCommand.cc @@ -79,7 +79,7 @@ bool ActivePeerConnectionCommand::execute() { checkPoint.reset(); TransferStat tstat = peerStorage->calculateStat(); if(tstat.getDownloadSpeed() < _thresholdSpeed || - btRuntime->lessThanMinPeer()) { + btRuntime->lessThanMinPeers()) { for(size_t numAdd = _numNewConnection; numAdd > 0 && peerStorage->isPeerAvailable(); --numAdd) { PeerHandle peer = peerStorage->getUnusedPeer(); diff --git a/src/BtConstants.h b/src/BtConstants.h index 53057f5f..52c90c23 100644 --- a/src/BtConstants.h +++ b/src/BtConstants.h @@ -45,10 +45,6 @@ typedef std::map Extensions; #define INFO_HASH_LENGTH 20 -#define MAX_PEER_ERROR 5 - -#define MAX_PEERS 55 - #define DEFAULT_LATENCY 1500 #endif // _D_BT_CONSTANTS_ diff --git a/src/BtRuntime.h b/src/BtRuntime.h index 17455733..323cefea 100644 --- a/src/BtRuntime.h +++ b/src/BtRuntime.h @@ -40,8 +40,6 @@ namespace aria2 { -#define MIN_PEERS 40 - class BtRuntime { private: uint64_t uploadLengthAtStartup; @@ -49,6 +47,9 @@ private: bool halt; unsigned int connections; bool _ready; + + static const unsigned int MIN_PEERS = 40; + public: BtRuntime(): uploadLengthAtStartup(0), @@ -86,13 +87,17 @@ public: void decreaseConnections() { connections--; } - bool lessThanMinPeer() const { return connections < MIN_PEERS; } + bool lessThanMaxPeers() const { return connections < MAX_PEERS; } - bool lessThanEqMinPeer() const { return connections <= MIN_PEERS; } + bool lessThanMinPeers() const { return connections < MIN_PEERS; } + + bool lessThanEqMinPeers() const { return connections <= MIN_PEERS; } bool ready() { return _ready; } void setReady(bool go) { _ready = go; } + + static const unsigned int MAX_PEERS = 55; }; typedef SharedHandle BtRuntimeHandle; diff --git a/src/DHTGetPeersCommand.cc b/src/DHTGetPeersCommand.cc index 4b223589..498befb8 100644 --- a/src/DHTGetPeersCommand.cc +++ b/src/DHTGetPeersCommand.cc @@ -77,7 +77,7 @@ bool DHTGetPeersCommand::execute() _taskQueue->addPeriodicTask2(_task); } else if(!_task.isNull() && _task->finished()) { _lastGetPeerTime.reset(); - if(_numRetry < MAX_RETRIES && btRuntime->lessThanEqMinPeer()) { + if(_numRetry < MAX_RETRIES && btRuntime->lessThanMinPeers()) { ++_numRetry; } else { _numRetry = 0; diff --git a/src/DefaultBtAnnounce.cc b/src/DefaultBtAnnounce.cc index caf3f424..aff5851c 100644 --- a/src/DefaultBtAnnounce.cc +++ b/src/DefaultBtAnnounce.cc @@ -132,7 +132,7 @@ std::string DefaultBtAnnounce::getAnnounceUrl() { return A2STR::NIL; } unsigned int numWant = 50; - if(!btRuntime->lessThanEqMinPeer() || btRuntime->isHalt()) { + if(!btRuntime->lessThanMinPeers() || btRuntime->isHalt()) { numWant = 0; } TransferStat stat = peerStorage->calculateStat(); @@ -257,7 +257,7 @@ DefaultBtAnnounce::processAnnounceResponse(const unsigned char* trackerResponse, const MetaEntry* peersEntry = response->get(BtAnnounce::PEERS); if(peersEntry && !btRuntime->isHalt() && - btRuntime->lessThanMinPeer()) { + btRuntime->lessThanMinPeers()) { DelegatingPeerListProcessor proc; std::deque > peers; proc.extractPeer(peers, peersEntry); diff --git a/src/DefaultPeerStorage.cc b/src/DefaultPeerStorage.cc index 27f7e4a8..40aef5c1 100644 --- a/src/DefaultPeerStorage.cc +++ b/src/DefaultPeerStorage.cc @@ -52,15 +52,14 @@ DefaultPeerStorage::DefaultPeerStorage(const BtContextHandle& btContext, const Option* option): btContext(btContext), option(option), - maxPeerListSize(MAX_PEER_LIST_SIZE), + logger(LogFactory::getInstance()), btRuntime(BT_RUNTIME(btContext)), + maxPeerListSize(btRuntime->MAX_PEERS+(btRuntime->MAX_PEERS >> 2)), removedPeerSessionDownloadLength(0), removedPeerSessionUploadLength(0), _seederStateChoke(new BtSeederStateChoke(btContext)), _leecherStateChoke(new BtLeecherStateChoke()) -{ - logger = LogFactory::getInstance(); -} +{} DefaultPeerStorage::~DefaultPeerStorage() { diff --git a/src/DefaultPeerStorage.h b/src/DefaultPeerStorage.h index 66d02e09..b8d6c9bb 100644 --- a/src/DefaultPeerStorage.h +++ b/src/DefaultPeerStorage.h @@ -39,9 +39,6 @@ namespace aria2 { -#define MAX_PEER_LIST_SIZE 60 -#define MAX_PEER_ERROR 5 - class BtContext; class Option; class Logger; @@ -54,9 +51,9 @@ private: SharedHandle btContext; const Option* option; std::deque > peers; - size_t maxPeerListSize; Logger* logger; SharedHandle btRuntime; + size_t maxPeerListSize; uint64_t removedPeerSessionDownloadLength; uint64_t removedPeerSessionUploadLength; diff --git a/src/InitiatorMSEHandshakeCommand.cc b/src/InitiatorMSEHandshakeCommand.cc index 03c570ee..ba64e92e 100644 --- a/src/InitiatorMSEHandshakeCommand.cc +++ b/src/InitiatorMSEHandshakeCommand.cc @@ -147,7 +147,7 @@ bool InitiatorMSEHandshakeCommand::prepareForNextPeer(time_t wait) { if(e->option->getAsBool(PREF_BT_REQUIRE_CRYPTO)) { logger->info("CUID#%d - Establishing connection using legacy BitTorrent handshake is disabled by preference.", cuid); - if(peerStorage->isPeerAvailable() && btRuntime->lessThanEqMinPeer()) { + if(peerStorage->isPeerAvailable() && btRuntime->lessThanEqMinPeers()) { SharedHandle peer = peerStorage->getUnusedPeer(); peer->usedBy(CUIDCounterSingletonHolder::instance()->newID()); Command* command = diff --git a/src/PeerInitiateConnectionCommand.cc b/src/PeerInitiateConnectionCommand.cc index ddaf53b3..a9570250 100644 --- a/src/PeerInitiateConnectionCommand.cc +++ b/src/PeerInitiateConnectionCommand.cc @@ -93,7 +93,7 @@ bool PeerInitiateConnectionCommand::executeInternal() { // TODO this method removed when PeerBalancerCommand is implemented bool PeerInitiateConnectionCommand::prepareForNextPeer(time_t wait) { - if(peerStorage->isPeerAvailable() && btRuntime->lessThanEqMinPeer()) { + if(peerStorage->isPeerAvailable() && btRuntime->lessThanEqMinPeers()) { PeerHandle peer = peerStorage->getUnusedPeer(); peer->usedBy(CUIDCounterSingletonHolder::instance()->newID()); Command* command = diff --git a/src/PeerInteractionCommand.cc b/src/PeerInteractionCommand.cc index e0e58939..fda2f195 100644 --- a/src/PeerInteractionCommand.cc +++ b/src/PeerInteractionCommand.cc @@ -253,7 +253,7 @@ bool PeerInteractionCommand::executeInternal() { // TODO this method removed when PeerBalancerCommand is implemented bool PeerInteractionCommand::prepareForNextPeer(time_t wait) { - if(peerStorage->isPeerAvailable() && btRuntime->lessThanEqMinPeer()) { + if(peerStorage->isPeerAvailable() && btRuntime->lessThanEqMinPeers()) { PeerHandle peer = peerStorage->getUnusedPeer(); peer->usedBy(CUIDCounterSingletonHolder::instance()->newID()); PeerInitiateConnectionCommand* command = diff --git a/src/PeerReceiveHandshakeCommand.cc b/src/PeerReceiveHandshakeCommand.cc index b275ae56..c6472a3e 100644 --- a/src/PeerReceiveHandshakeCommand.cc +++ b/src/PeerReceiveHandshakeCommand.cc @@ -100,7 +100,7 @@ bool PeerReceiveHandshakeCommand::executeInternal() TransferStat tstat = PEER_STORAGE(btContext)->calculateStat(); if((!PIECE_STORAGE(btContext)->downloadFinished() && tstat.getDownloadSpeed() < _thresholdSpeed) || - BT_RUNTIME(btContext)->getConnections() < MAX_PEERS) { + BT_RUNTIME(btContext)->lessThanMaxPeers()) { if(PEER_STORAGE(btContext)->addPeer(peer)) { peer->usedBy(cuid); diff --git a/src/TrackerWatcherCommand.cc b/src/TrackerWatcherCommand.cc index 302b3fdb..2271d828 100644 --- a/src/TrackerWatcherCommand.cc +++ b/src/TrackerWatcherCommand.cc @@ -142,7 +142,7 @@ void TrackerWatcherCommand::processTrackerResponse(const std::string& trackerRes { btAnnounce->processAnnounceResponse(reinterpret_cast(trackerResponse.c_str()), trackerResponse.size()); - while(!btRuntime->isHalt() && btRuntime->lessThanMinPeer()) { + while(!btRuntime->isHalt() && btRuntime->lessThanMinPeers()) { PeerHandle peer = peerStorage->getUnusedPeer(); if(peer.isNull()) { break;