mirror of https://github.com/aria2/aria2
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Force refresh bucket when startup if certain time has passed(currently 15 minutes). * src/DHTBucketRefreshTask.{h, cc} * src/DHTSetup.ccpull/1/head
parent
1b7c198289
commit
6fe7b7c8f3
|
@ -1,8 +1,15 @@
|
||||||
|
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
Force refresh bucket when startup if certain time has passed(currently 15 minutes).
|
||||||
|
* src/DHTBucketRefreshTask.{h, cc}
|
||||||
|
* src/DHTSetup.cc
|
||||||
|
|
||||||
2008-02-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2008-02-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
Removed "using namespace std;" from all sources. Appended std:: prefix to c++
|
Removed "using namespace std;" from all sources. Appended std:: prefix to c++
|
||||||
standard classes.
|
standard classes.
|
||||||
Included string.h where mem* function are used.
|
Included string.h where mem* function are used.
|
||||||
|
Added namespace aria2.
|
||||||
|
|
||||||
2008-02-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2008-02-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,8 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
DHTBucketRefreshTask::DHTBucketRefreshTask() {}
|
DHTBucketRefreshTask::DHTBucketRefreshTask():
|
||||||
|
_forceRefresh(false) {}
|
||||||
|
|
||||||
DHTBucketRefreshTask::~DHTBucketRefreshTask() {}
|
DHTBucketRefreshTask::~DHTBucketRefreshTask() {}
|
||||||
|
|
||||||
|
@ -52,7 +53,7 @@ void DHTBucketRefreshTask::startup()
|
||||||
{
|
{
|
||||||
std::deque<SharedHandle<DHTBucket> > buckets = _routingTable->getBuckets();
|
std::deque<SharedHandle<DHTBucket> > buckets = _routingTable->getBuckets();
|
||||||
for(std::deque<SharedHandle<DHTBucket> >::iterator i = buckets.begin(); i != buckets.end(); ++i) {
|
for(std::deque<SharedHandle<DHTBucket> >::iterator i = buckets.begin(); i != buckets.end(); ++i) {
|
||||||
if((*i)->needsRefresh()) {
|
if(_forceRefresh || (*i)->needsRefresh()) {
|
||||||
(*i)->notifyUpdate();
|
(*i)->notifyUpdate();
|
||||||
unsigned char targetID[DHT_ID_LENGTH];
|
unsigned char targetID[DHT_ID_LENGTH];
|
||||||
(*i)->getRandomNodeID(targetID);
|
(*i)->getRandomNodeID(targetID);
|
||||||
|
@ -70,4 +71,9 @@ void DHTBucketRefreshTask::startup()
|
||||||
_finished = true;
|
_finished = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DHTBucketRefreshTask::setForceRefresh(bool forceRefresh)
|
||||||
|
{
|
||||||
|
_forceRefresh = forceRefresh;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
|
@ -40,12 +40,17 @@
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class DHTBucketRefreshTask:public DHTAbstractTask {
|
class DHTBucketRefreshTask:public DHTAbstractTask {
|
||||||
|
private:
|
||||||
|
bool _forceRefresh;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DHTBucketRefreshTask();
|
DHTBucketRefreshTask();
|
||||||
|
|
||||||
virtual ~DHTBucketRefreshTask();
|
virtual ~DHTBucketRefreshTask();
|
||||||
|
|
||||||
virtual void startup();
|
virtual void startup();
|
||||||
|
|
||||||
|
void setForceRefresh(bool forceRefresh);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
#include "DHTTask.h"
|
#include "DHTTask.h"
|
||||||
#include "DHTRoutingTableDeserializer.h"
|
#include "DHTRoutingTableDeserializer.h"
|
||||||
#include "DHTRegistry.h"
|
#include "DHTRegistry.h"
|
||||||
|
#include "DHTBucketRefreshTask.h"
|
||||||
#include "CUIDCounter.h"
|
#include "CUIDCounter.h"
|
||||||
#include "prefs.h"
|
#include "prefs.h"
|
||||||
#include "Option.h"
|
#include "Option.h"
|
||||||
|
@ -175,7 +176,9 @@ Commands DHTSetup::setup(DownloadEngine* e, const Option* option)
|
||||||
routingTable->addNode(*i);
|
routingTable->addNode(*i);
|
||||||
}
|
}
|
||||||
if(!desnodes.empty() && deserializer.getSerializedTime().elapsed(DHT_BUCKET_REFRESH_INTERVAL)) {
|
if(!desnodes.empty() && deserializer.getSerializedTime().elapsed(DHT_BUCKET_REFRESH_INTERVAL)) {
|
||||||
taskQueue->addPeriodicTask1(taskFactory->createBucketRefreshTask());
|
SharedHandle<DHTBucketRefreshTask> task = taskFactory->createBucketRefreshTask();
|
||||||
|
task->setForceRefresh(true);
|
||||||
|
taskQueue->addPeriodicTask1(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
Commands commands;
|
Commands commands;
|
||||||
|
|
Loading…
Reference in New Issue