From ae957baa98d4f97ea2437596db5073f9c33d22ae Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 20 Jun 2010 12:28:11 +0000 Subject: 2010-06-20 Tatsuhiro Tsujikawa 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 --- src/DHTNodeLookupTaskCallback.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/DHTNodeLookupTaskCallback.cc') 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& remoteNode) { _task->onTimeout(remoteNode); } + } // namespace aria2 -- cgit