mirror of https://github.com/aria2/aria2
2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Logged received nodes in get_peers reply message. * src/DHTAbstractNodeLookupTask.cc * src/DHTAbstractNodeLookupTask.hpull/1/head
parent
f1043306f0
commit
f794df7d9b
|
@ -1,3 +1,9 @@
|
||||||
|
2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Logged received nodes in get_peers reply message.
|
||||||
|
* src/DHTAbstractNodeLookupTask.cc
|
||||||
|
* src/DHTAbstractNodeLookupTask.h
|
||||||
|
|
||||||
2009-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2009-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Fixed the bug that DHTAbstractNodeLookupTask never finishes if
|
Fixed the bug that DHTAbstractNodeLookupTask never finishes if
|
||||||
|
|
|
@ -66,11 +66,14 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
|
||||||
toEntries(newEntries, nodes);
|
toEntries(newEntries, nodes);
|
||||||
|
|
||||||
size_t count = 0;
|
size_t count = 0;
|
||||||
for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i = newEntries.begin();
|
for(std::deque<SharedHandle<DHTNodeLookupEntry> >::const_iterator i =
|
||||||
i != newEntries.end(); ++i) {
|
newEntries.begin(); i != newEntries.end(); ++i) {
|
||||||
if(memcmp(_localNode->getID(), (*i)->_node->getID(), DHT_ID_LENGTH) != 0) {
|
if(memcmp(_localNode->getID(), (*i)->_node->getID(), DHT_ID_LENGTH) != 0) {
|
||||||
_entries.push_front(*i);
|
_entries.push_front(*i);
|
||||||
++count;
|
++count;
|
||||||
|
_logger->debug("Received nodes: id=%s, ip=%s",
|
||||||
|
util::toHex((*i)->_node->getID(), DHT_ID_LENGTH).c_str(),
|
||||||
|
(*i)->_node->getIPAddress().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,16 +84,7 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
|
||||||
if(_entries.size() > DHTBucket::K) {
|
if(_entries.size() > DHTBucket::K) {
|
||||||
_entries.erase(_entries.begin()+DHTBucket::K, _entries.end());
|
_entries.erase(_entries.begin()+DHTBucket::K, _entries.end());
|
||||||
}
|
}
|
||||||
if(needsAdditionalOutgoingMessage()) {
|
sendMessageAndCheckFinish();
|
||||||
sendMessage();
|
|
||||||
}
|
|
||||||
if(_inFlightMessage == 0) {
|
|
||||||
_logger->debug("Finished node_lookup for node ID %s",
|
|
||||||
util::toHex(_targetID, DHT_ID_LENGTH).c_str());
|
|
||||||
onFinish();
|
|
||||||
updateBucket();
|
|
||||||
_finished = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
|
void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
|
||||||
|
@ -104,6 +98,11 @@ void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sendMessageAndCheckFinish();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DHTAbstractNodeLookupTask::sendMessageAndCheckFinish()
|
||||||
|
{
|
||||||
if(needsAdditionalOutgoingMessage()) {
|
if(needsAdditionalOutgoingMessage()) {
|
||||||
sendMessage();
|
sendMessage();
|
||||||
}
|
}
|
||||||
|
@ -113,7 +112,11 @@ void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
|
||||||
onFinish();
|
onFinish();
|
||||||
updateBucket();
|
updateBucket();
|
||||||
_finished = true;
|
_finished = true;
|
||||||
}
|
} else {
|
||||||
|
_logger->debug("%d in flight message for node ID %s",
|
||||||
|
_inFlightMessage,
|
||||||
|
util::toHex(_targetID, DHT_ID_LENGTH).c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DHTAbstractNodeLookupTask::sendMessage()
|
void DHTAbstractNodeLookupTask::sendMessage()
|
||||||
|
|
|
@ -61,6 +61,7 @@ protected:
|
||||||
|
|
||||||
void updateBucket();
|
void updateBucket();
|
||||||
|
|
||||||
|
void sendMessageAndCheckFinish();
|
||||||
public:
|
public:
|
||||||
DHTAbstractNodeLookupTask(const unsigned char* targetID);
|
DHTAbstractNodeLookupTask(const unsigned char* targetID);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue