summaryrefslogtreecommitdiff
path: root/src/DHTNodeLookupTaskCallback.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-06-20 12:28:11 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-06-20 12:28:11 +0000
commitae957baa98d4f97ea2437596db5073f9c33d22ae (patch)
treeb3ce63bdb5972388c6b799d4a723230eca1d636c /src/DHTNodeLookupTaskCallback.cc
parent9e9fb885d9b70299d24beabd2b7a574199edace0 (diff)
2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
When wrong type DHT reply message is received for a transaction ID, assume the message timed out. * src/DHTNodeLookupTaskCallback.cc * src/DHTNodeLookupTaskCallback.h * src/DHTPeerLookupTaskCallback.cc * src/DHTPeerLookupTaskCallback.h * src/DHTPingReplyMessageCallback.h
Diffstat (limited to 'src/DHTNodeLookupTaskCallback.cc')
-rw-r--r--src/DHTNodeLookupTaskCallback.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/DHTNodeLookupTaskCallback.cc b/src/DHTNodeLookupTaskCallback.cc
index 0b0fd197..0c2c3009 100644
--- a/src/DHTNodeLookupTaskCallback.cc
+++ b/src/DHTNodeLookupTaskCallback.cc
@@ -34,21 +34,45 @@
/* copyright --> */
#include "DHTNodeLookupTaskCallback.h"
#include "DHTNodeLookupTask.h"
+#include "DHTAnnouncePeerReplyMessage.h"
+#include "DHTGetPeersReplyMessage.h"
+#include "DHTPingReplyMessage.h"
+#include "Peer.h"
namespace aria2 {
DHTNodeLookupTaskCallback::DHTNodeLookupTaskCallback(DHTNodeLookupTask* task):
_task(task) {}
+void DHTNodeLookupTaskCallback::visit
+(const DHTAnnouncePeerReplyMessage* message)
+{
+ // When wrong message type is received, forced to timeout
+ onTimeout(message->getRemoteNode());
+}
+
void DHTNodeLookupTaskCallback::visit(const DHTFindNodeReplyMessage* message)
{
_task->onReceived(message);
}
+void DHTNodeLookupTaskCallback::visit(const DHTGetPeersReplyMessage* message)
+{
+ // When wrong message type is received, forced to timeout
+ onTimeout(message->getRemoteNode());
+}
+
+void DHTNodeLookupTaskCallback::visit(const DHTPingReplyMessage* message)
+{
+ // When wrong message type is received, forced to timeout
+ onTimeout(message->getRemoteNode());
+}
+
void DHTNodeLookupTaskCallback::onTimeout
(const SharedHandle<DHTNode>& remoteNode)
{
_task->onTimeout(remoteNode);
}
+
} // namespace aria2