mirror of https://github.com/aria2/aria2
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added handling of dynamic cast failure. * src/DHTNodeLookupTask.cc * src/DHTPeerLookupTask.ccpull/1/head
parent
9c277148b9
commit
34e6a1dc9a
|
@ -1,3 +1,9 @@
|
||||||
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
Added handling of dynamic cast failure.
|
||||||
|
* src/DHTNodeLookupTask.cc
|
||||||
|
* src/DHTPeerLookupTask.cc
|
||||||
|
|
||||||
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
Added the ability to stop aria2 itself when given time has passed
|
Added the ability to stop aria2 itself when given time has passed
|
||||||
|
|
|
@ -50,8 +50,12 @@ std::deque<SharedHandle<DHTNode> >
|
||||||
DHTNodeLookupTask::getNodesFromMessage(const SharedHandle<DHTMessage>& message)
|
DHTNodeLookupTask::getNodesFromMessage(const SharedHandle<DHTMessage>& message)
|
||||||
{
|
{
|
||||||
SharedHandle<DHTFindNodeReplyMessage> m = message;
|
SharedHandle<DHTFindNodeReplyMessage> m = message;
|
||||||
|
if(m.isNull()) {
|
||||||
|
return std::deque<SharedHandle<DHTNode> >();
|
||||||
|
} else {
|
||||||
return m->getClosestKNodes();
|
return m->getClosestKNodes();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SharedHandle<DHTMessage>
|
SharedHandle<DHTMessage>
|
||||||
DHTNodeLookupTask::createMessage(const SharedHandle<DHTNode>& remoteNode)
|
DHTNodeLookupTask::createMessage(const SharedHandle<DHTNode>& remoteNode)
|
||||||
|
|
|
@ -59,13 +59,19 @@ DHTPeerLookupTask::DHTPeerLookupTask(const SharedHandle<BtContext>& btContext):
|
||||||
std::deque<SharedHandle<DHTNode> > DHTPeerLookupTask::getNodesFromMessage(const SharedHandle<DHTMessage>& message)
|
std::deque<SharedHandle<DHTNode> > DHTPeerLookupTask::getNodesFromMessage(const SharedHandle<DHTMessage>& message)
|
||||||
{
|
{
|
||||||
SharedHandle<DHTGetPeersReplyMessage> m = message;
|
SharedHandle<DHTGetPeersReplyMessage> m = message;
|
||||||
|
if(m.isNull()) {
|
||||||
|
return std::deque<SharedHandle<DHTNode> >();
|
||||||
|
} else {
|
||||||
return m->getClosestKNodes();
|
return m->getClosestKNodes();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DHTPeerLookupTask::onReceivedInternal(const SharedHandle<DHTMessage>& message)
|
void DHTPeerLookupTask::onReceivedInternal(const SharedHandle<DHTMessage>& message)
|
||||||
{
|
{
|
||||||
SharedHandle<DHTGetPeersReplyMessage> m = message;
|
SharedHandle<DHTGetPeersReplyMessage> m = message;
|
||||||
|
if(m.isNull()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
SharedHandle<DHTNode> remoteNode = m->getRemoteNode();
|
SharedHandle<DHTNode> remoteNode = m->getRemoteNode();
|
||||||
_tokenStorage[Util::toHex(remoteNode->getID(), DHT_ID_LENGTH)] = m->getToken();
|
_tokenStorage[Util::toHex(remoteNode->getID(), DHT_ID_LENGTH)] = m->getToken();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue