diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-12-14 05:46:45 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-12-14 05:46:45 +0000 |
| commit | 9202fe23c8113cd02c77a2b1132372b1d0601190 (patch) | |
| tree | 322fd603b573504fb4a2d472705887a33074b4da /src/DHTFindNodeReplyMessage.cc | |
| parent | 057132cd5f03294433648c5f794b43c57fd62375 (diff) | |
2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use BDE instead of Dictionary/List/Data.
* src/DHTAbstractMessage.cc
* src/DHTAbstractMessage.h
* src/DHTAnnouncePeerMessage.cc
* src/DHTAnnouncePeerMessage.h
* src/DHTAnnouncePeerReplyMessage.cc
* src/DHTAnnouncePeerReplyMessage.h
* src/DHTFindNodeMessage.cc
* src/DHTFindNodeMessage.h
* src/DHTFindNodeReplyMessage.cc
* src/DHTFindNodeReplyMessage.h
* src/DHTGetPeersMessage.cc
* src/DHTGetPeersMessage.h
* src/DHTGetPeersReplyMessage.cc
* src/DHTGetPeersReplyMessage.h
* src/DHTMessageFactory.h
* src/DHTMessageFactoryImpl.cc
* src/DHTMessageFactoryImpl.h
* src/DHTMessageReceiver.cc
* src/DHTMessageTracker.cc
* src/DHTMessageTracker.h
* src/DHTPingMessage.cc
* src/DHTPingMessage.h
* src/DHTPingReplyMessage.cc
* src/DHTPingReplyMessage.h
* src/DHTQueryMessage.cc
* src/DHTQueryMessage.h
* src/DHTResponseMessage.cc
* src/DHTResponseMessage.h
* test/DHTAnnouncePeerMessageTest.cc
* test/DHTAnnouncePeerReplyMessageTest.cc
* test/DHTFindNodeMessageTest.cc
* test/DHTFindNodeReplyMessageTest.cc
* test/DHTGetPeersMessageTest.cc
* test/DHTGetPeersReplyMessageTest.cc
* test/DHTMessageFactoryImplTest.cc
* test/DHTMessageTrackerTest.cc
* test/DHTPingMessageTest.cc
* test/DHTPingReplyMessageTest.cc
* test/MockDHTMessageFactory.h
Diffstat (limited to 'src/DHTFindNodeReplyMessage.cc')
| -rw-r--r-- | src/DHTFindNodeReplyMessage.cc | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/DHTFindNodeReplyMessage.cc b/src/DHTFindNodeReplyMessage.cc index 47f06db1..0ae1d74c 100644 --- a/src/DHTFindNodeReplyMessage.cc +++ b/src/DHTFindNodeReplyMessage.cc @@ -33,17 +33,18 @@ */ /* copyright --> */ #include "DHTFindNodeReplyMessage.h" + +#include <cstring> + #include "DHTNode.h" #include "DHTBucket.h" -#include "Data.h" -#include "Dictionary.h" #include "DHTRoutingTable.h" #include "DHTMessageFactory.h" #include "DHTMessageDispatcher.h" #include "DHTMessageCallback.h" #include "PeerMessageUtil.h" #include "Util.h" -#include <cstring> +#include "bencode.h" namespace aria2 { @@ -67,22 +68,25 @@ void DHTFindNodeReplyMessage::doReceivedAction() } } -Dictionary* DHTFindNodeReplyMessage::getResponse() +bencode::BDE DHTFindNodeReplyMessage::getResponse() { - Dictionary* a = new Dictionary(); - a->put(DHTMessage::ID, new Data(_localNode->getID(), DHT_ID_LENGTH)); + bencode::BDE aDict = bencode::BDE::dict(); + aDict[DHTMessage::ID] = bencode::BDE(_localNode->getID(), DHT_ID_LENGTH); size_t offset = 0; unsigned char buffer[DHTBucket::K*26]; // TODO if _closestKNodes.size() > DHTBucket::K ?? - for(std::deque<SharedHandle<DHTNode> >::const_iterator i = _closestKNodes.begin(); i != _closestKNodes.end(); ++i) { + for(std::deque<SharedHandle<DHTNode> >::const_iterator i = + _closestKNodes.begin(); + i != _closestKNodes.end() && offset < DHTBucket::K*26; ++i) { SharedHandle<DHTNode> node = *i; memcpy(buffer+offset, node->getID(), DHT_ID_LENGTH); - if(PeerMessageUtil::createcompact(buffer+20+offset, node->getIPAddress(), node->getPort())) { + if(PeerMessageUtil::createcompact(buffer+20+offset, node->getIPAddress(), + node->getPort())) { offset += 26; } } - a->put(NODES, new Data(buffer, offset)); - return a; + aDict[NODES] = bencode::BDE(buffer, offset); + return aDict; } std::string DHTFindNodeReplyMessage::getMessageType() const |
