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/DHTPeerLookupTask.cc | |
| parent | c81b1321122e8509b55c94c0cbca0d8d6d319f0c (diff) | |
| parent | a7cd943a06b1a5ff4515b57060b84037f8d01f9f (diff) | |
Merge branch 'master' into random-webseeding
Diffstat (limited to 'src/DHTPeerLookupTask.cc')
| -rw-r--r-- | src/DHTPeerLookupTask.cc | 50 |
1 files changed, 24 insertions, 26 deletions
diff --git a/src/DHTPeerLookupTask.cc b/src/DHTPeerLookupTask.cc index 670c8cb6..389f4da4 100644 --- a/src/DHTPeerLookupTask.cc +++ b/src/DHTPeerLookupTask.cc @@ -55,36 +55,35 @@ namespace aria2 { -DHTPeerLookupTask::DHTPeerLookupTask -(const std::shared_ptr<DownloadContext>& downloadContext, - uint16_t tcpPort) - : DHTAbstractNodeLookupTask<DHTGetPeersReplyMessage> - (bittorrent::getInfoHash(downloadContext)), - tcpPort_(tcpPort) -{} +DHTPeerLookupTask::DHTPeerLookupTask( + const std::shared_ptr<DownloadContext>& downloadContext, uint16_t tcpPort) + : DHTAbstractNodeLookupTask<DHTGetPeersReplyMessage>( + bittorrent::getInfoHash(downloadContext)), + tcpPort_(tcpPort) +{ +} -void -DHTPeerLookupTask::getNodesFromMessage -(std::vector<std::shared_ptr<DHTNode>>& nodes, - const DHTGetPeersReplyMessage* message) +void DHTPeerLookupTask::getNodesFromMessage( + std::vector<std::shared_ptr<DHTNode>>& nodes, + const DHTGetPeersReplyMessage* message) { auto& knodes = message->getClosestKNodes(); nodes.insert(std::end(nodes), std::begin(knodes), std::end(knodes)); } -void DHTPeerLookupTask::onReceivedInternal -(const DHTGetPeersReplyMessage* message) +void DHTPeerLookupTask::onReceivedInternal( + const DHTGetPeersReplyMessage* message) { std::shared_ptr<DHTNode> remoteNode = message->getRemoteNode(); tokenStorage_[util::toHex(remoteNode->getID(), DHT_ID_LENGTH)] = - message->getToken(); + message->getToken(); peerStorage_->addPeer(message->getValues()); A2_LOG_INFO(fmt("Received %lu peers.", static_cast<unsigned long>(message->getValues().size()))); } -std::unique_ptr<DHTMessage> DHTPeerLookupTask::createMessage -(const std::shared_ptr<DHTNode>& remoteNode) +std::unique_ptr<DHTMessage> +DHTPeerLookupTask::createMessage(const std::shared_ptr<DHTNode>& remoteNode) { return getMessageFactory()->createGetPeersMessage(remoteNode, getTargetID()); } @@ -100,24 +99,23 @@ void DHTPeerLookupTask::onFinish() util::toHex(getTargetID(), DHT_ID_LENGTH).c_str())); // send announce_peer message to K closest nodes size_t num = DHTBucket::K; - for(auto i = std::begin(getEntries()), eoi = std::end(getEntries()); - i != eoi && num > 0; ++i) { - if(!(*i)->used) { + for (auto i = std::begin(getEntries()), eoi = std::end(getEntries()); + i != eoi && num > 0; ++i) { + if (!(*i)->used) { continue; } auto& node = (*i)->node; std::string idHex = util::toHex(node->getID(), DHT_ID_LENGTH); std::string token = tokenStorage_[idHex]; - if(token.empty()) { + if (token.empty()) { A2_LOG_DEBUG(fmt("Token is empty for ID:%s", idHex.c_str())); continue; } - getMessageDispatcher()->addMessageToQueue - (getMessageFactory()->createAnnouncePeerMessage - (node, - getTargetID(), // this is infoHash - tcpPort_, - token)); + getMessageDispatcher()->addMessageToQueue( + getMessageFactory()->createAnnouncePeerMessage( + node, + getTargetID(), // this is infoHash + tcpPort_, token)); --num; } } |
