mirror of https://github.com/aria2/aria2
2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Change the number of retries for tracker request based on the number of available tracker in a torrent file. * src/TrackerWatcherCommand.ccpull/1/head
parent
1b26827851
commit
746c187ae8
|
@ -1,3 +1,9 @@
|
|||
2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Change the number of retries for tracker request based on the
|
||||
number of available tracker in a torrent file.
|
||||
* src/TrackerWatcherCommand.cc
|
||||
|
||||
2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Added _maxTries property to RequestGroup and assign the option
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
#include "A2STR.h"
|
||||
#include "SocketCore.h"
|
||||
#include "Request.h"
|
||||
#include "AnnounceTier.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
||||
|
@ -178,12 +179,37 @@ RequestGroupHandle TrackerWatcherCommand::createAnnounce() {
|
|||
return rg;
|
||||
}
|
||||
|
||||
static bool backupTrackerIsAvailable
|
||||
(const std::deque<SharedHandle<AnnounceTier> >& announceTiers)
|
||||
{
|
||||
if(announceTiers.size() >= 2) {
|
||||
return true;
|
||||
}
|
||||
if(announceTiers.empty()) {
|
||||
return false;
|
||||
}
|
||||
if(announceTiers[0]->urls.size() >= 2) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
RequestGroupHandle
|
||||
TrackerWatcherCommand::createRequestGroup(const std::string& uri)
|
||||
{
|
||||
std::deque<std::string> uris;
|
||||
uris.push_back(uri);
|
||||
RequestGroupHandle rg(new RequestGroup(e->option, uris));
|
||||
// If backup tracker is available, only try 2 times for each tracker
|
||||
// and if they all fails, then try next one.
|
||||
if(backupTrackerIsAvailable(_btContext->getAnnounceTiers())) {
|
||||
logger->debug("This is multi-tracker announce.");
|
||||
rg->setMaxTries(2);
|
||||
} else {
|
||||
logger->debug("This is single-tracker announce.");
|
||||
rg->setMaxTries(5);
|
||||
}
|
||||
|
||||
static const std::string TRACKER_ANNOUNCE_FILE("[tracker.announce]");
|
||||
SingleFileDownloadContextHandle dctx
|
||||
|
|
Loading…
Reference in New Issue