From 63013bf3747d68a81af0469acb1a005fd440e6e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Tue, 17 Oct 2017 03:17:52 +0200 Subject: [PATCH] SearchNode: prevent copy, check request access --- src/search.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/search.h b/src/search.h index 40a43e41..e5aeee82 100644 --- a/src/search.h +++ b/src/search.h @@ -76,6 +76,11 @@ struct Dht::SearchNode { node is a new candidate for inclusion. */ SearchNode() : node() {} + SearchNode(const SearchNode&) = delete; + SearchNode(SearchNode&&) = default; + SearchNode& operator=(const SearchNode&) = delete; + SearchNode& operator=(SearchNode&&) = default; + SearchNode(const Sp<Node>& node) : node(node) {} ~SearchNode() { if (node) { @@ -186,6 +191,7 @@ struct Dht::SearchNode { node->cancelRequest(status.second); } } + getStatus.clear(); } /** @@ -227,10 +233,11 @@ struct Dht::SearchNode { void cancelAnnounce() { for (const auto& status : acked) { const auto& req = status.second.first; - if (req->pending()) { + if (req and req->pending()) { node->cancelRequest(req); } } + acked.clear(); } bool isListening(time_point now) const { -- GitLab