summaryrefslogtreecommitdiff
path: root/src/DHTAbstractNodeLookupTask.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-07 00:22:43 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-07 00:22:43 +0900
commita9f734218fdccdc8521e4e88eca8e0d26f539629 (patch)
treef6ad94d307cafeef3bb99140900e8ebd1d3e0daa /src/DHTAbstractNodeLookupTask.h
parent2dba2f86a43414d706287a5a0fa12aa6573a59d2 (diff)
Don't send announce_peer message with empty token in
DHTPeerLookupTask. Replace old node ID with new node ID when response message is received in DHTAbstractNodeLookupTask.
Diffstat (limited to 'src/DHTAbstractNodeLookupTask.h')
-rw-r--r--src/DHTAbstractNodeLookupTask.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/DHTAbstractNodeLookupTask.h b/src/DHTAbstractNodeLookupTask.h
index f5435ad5..cf71470e 100644
--- a/src/DHTAbstractNodeLookupTask.h
+++ b/src/DHTAbstractNodeLookupTask.h
@@ -173,6 +173,14 @@ public:
void onReceived(const ResponseMessage* message)
{
--inFlightMessage_;
+ // Replace old Node ID with new Node ID.
+ for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i =
+ entries_.begin(), eoi = entries_.end(); i != eoi; ++i) {
+ if((*i)->node->getIPAddress() == message->getRemoteNode()->getIPAddress()
+ && (*i)->node->getPort() == message->getRemoteNode()->getPort()) {
+ (*i)->node = message->getRemoteNode();
+ }
+ }
onReceivedInternal(message);
std::vector<SharedHandle<DHTNode> > nodes;
getNodesFromMessage(nodes, message);