diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-20 12:28:11 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-20 12:28:11 +0000 |
| commit | ae957baa98d4f97ea2437596db5073f9c33d22ae (patch) | |
| tree | b3ce63bdb5972388c6b799d4a723230eca1d636c /src/DHTNodeLookupTaskCallback.cc | |
| parent | 9e9fb885d9b70299d24beabd2b7a574199edace0 (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.cc | 24 |
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 |
