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
pull/1/head
Tatsuhiro Tsujikawa 2010-06-20 12:28:11 +00:00
parent 9e9fb885d9
commit ae957baa98
6 changed files with 76 additions and 9 deletions

View File

@ -1,3 +1,13 @@
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
2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Removed PeerListProcessor. Its functionality is now moved to

View File

@ -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

View File

@ -47,13 +47,13 @@ private:
public:
DHTNodeLookupTaskCallback(DHTNodeLookupTask* task);
virtual void visit(const DHTAnnouncePeerReplyMessage* message) {}
virtual void visit(const DHTAnnouncePeerReplyMessage* message);
virtual void visit(const DHTFindNodeReplyMessage* message);
virtual void visit(const DHTGetPeersReplyMessage* message) {}
virtual void visit(const DHTGetPeersReplyMessage* message);
virtual void visit(const DHTPingReplyMessage* message) {}
virtual void visit(const DHTPingReplyMessage* message);
virtual void onTimeout(const SharedHandle<DHTNode>& remoteNode);
};

View File

@ -34,17 +34,37 @@
/* copyright --> */
#include "DHTPeerLookupTaskCallback.h"
#include "DHTPeerLookupTask.h"
#include "DHTAnnouncePeerReplyMessage.h"
#include "DHTFindNodeReplyMessage.h"
#include "DHTPingReplyMessage.h"
#include "Peer.h"
namespace aria2 {
DHTPeerLookupTaskCallback::DHTPeerLookupTaskCallback(DHTPeerLookupTask* task):
_task(task) {}
void DHTPeerLookupTaskCallback::visit
(const DHTAnnouncePeerReplyMessage* message)
{
onTimeout(message->getRemoteNode());
}
void DHTPeerLookupTaskCallback::visit(const DHTFindNodeReplyMessage* message)
{
onTimeout(message->getRemoteNode());
}
void DHTPeerLookupTaskCallback::visit(const DHTGetPeersReplyMessage* message)
{
_task->onReceived(message);
}
void DHTPeerLookupTaskCallback::visit(const DHTPingReplyMessage* message)
{
onTimeout(message->getRemoteNode());
}
void DHTPeerLookupTaskCallback::onTimeout
(const SharedHandle<DHTNode>& remoteNode)
{

View File

@ -47,13 +47,13 @@ private:
public:
DHTPeerLookupTaskCallback(DHTPeerLookupTask* task);
virtual void visit(const DHTAnnouncePeerReplyMessage* message) {}
virtual void visit(const DHTAnnouncePeerReplyMessage* message);
virtual void visit(const DHTFindNodeReplyMessage* message) {}
virtual void visit(const DHTFindNodeReplyMessage* message);
virtual void visit(const DHTGetPeersReplyMessage* message);
virtual void visit(const DHTPingReplyMessage* message) {}
virtual void visit(const DHTPingReplyMessage* message);
virtual void onTimeout(const SharedHandle<DHTNode>& remoteNode);
};

View File

@ -36,6 +36,10 @@
#define _D_DHT_PING_REPLY_MESSAGE_CALLBACK_H_
#include "DHTMessageCallback.h"
#include "DHTAnnouncePeerReplyMessage.h"
#include "DHTFindNodeReplyMessage.h"
#include "DHTGetPeersReplyMessage.h"
#include "Peer.h"
namespace aria2 {
@ -46,11 +50,20 @@ private:
public:
DHTPingReplyMessageCallback(Task* task):_task(task) {}
virtual void visit(const DHTAnnouncePeerReplyMessage* message) {}
virtual void visit(const DHTAnnouncePeerReplyMessage* message)
{
onTimeout(message->getRemoteNode());
}
virtual void visit(const DHTFindNodeReplyMessage* message) {}
virtual void visit(const DHTFindNodeReplyMessage* message)
{
onTimeout(message->getRemoteNode());
}
virtual void visit(const DHTGetPeersReplyMessage* message) {}
virtual void visit(const DHTGetPeersReplyMessage* message)
{
onTimeout(message->getRemoteNode());
}
virtual void visit(const DHTPingReplyMessage* message)
{