summaryrefslogtreecommitdiff
path: root/src/DHTFindNodeReplyMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-03-26 17:12:52 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-03-26 17:20:27 +0900
commitd64089632e82a2548752c7a6baaa68365a795a74 (patch)
tree57fc7b85a8c1290975d58fa4761b04a7695bf7e3 /src/DHTFindNodeReplyMessage.cc
parentc81b1321122e8509b55c94c0cbca0d8d6d319f0c (diff)
parenta7cd943a06b1a5ff4515b57060b84037f8d01f9f (diff)
Merge branch 'master' into random-webseeding
Diffstat (limited to 'src/DHTFindNodeReplyMessage.cc')
-rw-r--r--src/DHTFindNodeReplyMessage.cc43
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);
}