Skip to content
Snippets Groups Projects
Commit d062f7bd authored by Adrien Béraud's avatar Adrien Béraud
Browse files

make sendPing use Node by default

previous code was duplicating nodes, causing
sending many "dubious node" pings to the same node.
parent 0890ed9c
No related branches found
No related tags found
No related merge requests found
...@@ -396,11 +396,11 @@ public: ...@@ -396,11 +396,11 @@ public:
* Requests * * Requests *
**************/ **************/
std::shared_ptr<Request> std::shared_ptr<Request>
sendPing(std::shared_ptr<Node> n, RequestCb on_done, RequestExpiredCb on_expired) { sendPing(std::shared_ptr<Node> n, RequestCb on_done, RequestExpiredCb on_expired);
return sendPing((sockaddr*)&n->ss, n->sslen, on_done, on_expired);
}
std::shared_ptr<Request> std::shared_ptr<Request>
sendPing(const sockaddr* sa, socklen_t salen, RequestCb on_done, RequestExpiredCb on_expired); sendPing(const sockaddr* sa, socklen_t salen, RequestCb on_done, RequestExpiredCb on_expired) {
return sendPing(std::make_shared<Node>(zeroes, sa, salen), on_done, on_expired);
}
std::shared_ptr<Request> std::shared_ptr<Request>
sendFindNode(std::shared_ptr<Node> n, sendFindNode(std::shared_ptr<Node> n,
const InfoHash& target, const InfoHash& target,
......
...@@ -272,7 +272,7 @@ NetworkEngine::send(const char *buf, size_t len, int flags, const sockaddr *sa, ...@@ -272,7 +272,7 @@ NetworkEngine::send(const char *buf, size_t len, int flags, const sockaddr *sa,
} }
std::shared_ptr<NetworkEngine::Request> std::shared_ptr<NetworkEngine::Request>
NetworkEngine::sendPing(const sockaddr* sa, socklen_t salen, RequestCb on_done, RequestExpiredCb on_expired) { NetworkEngine::sendPing(std::shared_ptr<Node> node, RequestCb on_done, RequestExpiredCb on_expired) {
auto tid = TransId {TransPrefix::PING, getNewTid()}; auto tid = TransId {TransPrefix::PING, getNewTid()};
msgpack::sbuffer buffer; msgpack::sbuffer buffer;
msgpack::packer<msgpack::sbuffer> pk(&buffer); msgpack::packer<msgpack::sbuffer> pk(&buffer);
...@@ -288,7 +288,7 @@ NetworkEngine::sendPing(const sockaddr* sa, socklen_t salen, RequestCb on_done, ...@@ -288,7 +288,7 @@ NetworkEngine::sendPing(const sockaddr* sa, socklen_t salen, RequestCb on_done,
pk.pack(std::string("v")); pk.pack(my_v); pk.pack(std::string("v")); pk.pack(my_v);
Blob b {buffer.data(), buffer.data() + buffer.size()}; Blob b {buffer.data(), buffer.data() + buffer.size()};
std::shared_ptr<Request> req(new Request {tid.getTid(), std::make_shared<Node>(InfoHash {}, sa, salen), std::move(b), std::shared_ptr<Request> req(new Request {tid.getTid(), node, std::move(b),
[=](std::shared_ptr<Request> req_status, ParsedMessage&&) { [=](std::shared_ptr<Request> req_status, ParsedMessage&&) {
DHT_LOG.DEBUG("Got pong from %s", print_addr(req_status->node->ss, req_status->node->sslen).c_str()); DHT_LOG.DEBUG("Got pong from %s", print_addr(req_status->node->ss, req_status->node->sslen).c_str());
if (on_done) { if (on_done) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment