diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-01-07 00:22:43 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-01-07 00:22:43 +0900 |
| commit | a9f734218fdccdc8521e4e88eca8e0d26f539629 (patch) | |
| tree | f6ad94d307cafeef3bb99140900e8ebd1d3e0daa /src/DHTAbstractNodeLookupTask.h | |
| parent | 2dba2f86a43414d706287a5a0fa12aa6573a59d2 (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.h | 8 |
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); |
