diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:12:52 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:20:27 +0900 |
| commit | d64089632e82a2548752c7a6baaa68365a795a74 (patch) | |
| tree | 57fc7b85a8c1290975d58fa4761b04a7695bf7e3 /src/DHTFindNodeReplyMessage.cc | |
| parent | c81b1321122e8509b55c94c0cbca0d8d6d319f0c (diff) | |
| parent | a7cd943a06b1a5ff4515b57060b84037f8d01f9f (diff) | |
Merge branch 'master' into random-webseeding
Diffstat (limited to 'src/DHTFindNodeReplyMessage.cc')
| -rw-r--r-- | src/DHTFindNodeReplyMessage.cc | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/src/DHTFindNodeReplyMessage.cc b/src/DHTFindNodeReplyMessage.cc index 45eded94..e3555d81 100644 --- a/src/DHTFindNodeReplyMessage.cc +++ b/src/DHTFindNodeReplyMessage.cc @@ -53,19 +53,18 @@ const std::string DHTFindNodeReplyMessage::NODES("nodes"); const std::string DHTFindNodeReplyMessage::NODES6("nodes6"); -DHTFindNodeReplyMessage::DHTFindNodeReplyMessage -(int family, - const std::shared_ptr<DHTNode>& localNode, - const std::shared_ptr<DHTNode>& remoteNode, - const std::string& transactionID) - : DHTResponseMessage{localNode, remoteNode, transactionID}, - family_{family} -{} +DHTFindNodeReplyMessage::DHTFindNodeReplyMessage( + int family, const std::shared_ptr<DHTNode>& localNode, + const std::shared_ptr<DHTNode>& remoteNode, + const std::string& transactionID) + : DHTResponseMessage{localNode, remoteNode, transactionID}, family_{family} +{ +} void DHTFindNodeReplyMessage::doReceivedAction() { - for(auto& node : closestKNodes_) { - if(memcmp(node->getID(), getLocalNode()->getID(), DHT_ID_LENGTH) != 0) { + for (auto& node : closestKNodes_) { + if (memcmp(node->getID(), getLocalNode()->getID(), DHT_ID_LENGTH) != 0) { getRoutingTable()->addNode(node); } } @@ -75,25 +74,25 @@ std::unique_ptr<Dict> DHTFindNodeReplyMessage::getResponse() { auto aDict = Dict::g(); aDict->put(DHTMessage::ID, String::g(getLocalNode()->getID(), DHT_ID_LENGTH)); - unsigned char buffer[DHTBucket::K*38]; + unsigned char buffer[DHTBucket::K * 38]; const int clen = bittorrent::getCompactLength(family_); - const int unit = clen+20; + const int unit = clen + 20; assert(unit <= 38); size_t offset = 0; size_t k = 0; - for(auto i = std::begin(closestKNodes_), eoi = std::end(closestKNodes_); - i != eoi && k < DHTBucket::K; ++i) { - memcpy(buffer+offset, (*i)->getID(), DHT_ID_LENGTH); + for (auto i = std::begin(closestKNodes_), eoi = std::end(closestKNodes_); + i != eoi && k < DHTBucket::K; ++i) { + memcpy(buffer + offset, (*i)->getID(), DHT_ID_LENGTH); unsigned char compact[COMPACT_LEN_IPV6]; - int compactlen = bittorrent::packcompact(compact, (*i)->getIPAddress(), - (*i)->getPort()); - if(compactlen == clen) { - memcpy(buffer+20+offset, compact, compactlen); + int compactlen = + bittorrent::packcompact(compact, (*i)->getIPAddress(), (*i)->getPort()); + if (compactlen == clen) { + memcpy(buffer + 20 + offset, compact, compactlen); offset += unit; ++k; } } - aDict->put(family_ == AF_INET?NODES:NODES6, String::g(buffer, offset)); + aDict->put(family_ == AF_INET ? NODES : NODES6, String::g(buffer, offset)); return aDict; } @@ -107,8 +106,8 @@ void DHTFindNodeReplyMessage::accept(DHTMessageCallback* callback) callback->visit(this); } -void DHTFindNodeReplyMessage::setClosestKNodes -(std::vector<std::shared_ptr<DHTNode>> closestKNodes) +void DHTFindNodeReplyMessage::setClosestKNodes( + std::vector<std::shared_ptr<DHTNode>> closestKNodes) { closestKNodes_ = std::move(closestKNodes); } |
