From 0fc7e451e607b1ff116730dbfdf22cfb49e37192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <> Date: Sun, 22 Feb 2026 17:16:28 -0500 Subject: [PATCH] dhtrunner: move getNodeInfo implementation to securedht --- include/opendht/securedht.h | 17 +++++++++++++++++ src/dhtrunner.cpp | 30 +++++------------------------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/include/opendht/securedht.h b/include/opendht/securedht.h index f3d316c9..49576b86 100644 --- a/include/opendht/securedht.h +++ b/include/opendht/securedht.h @@ -191,6 +191,23 @@ public: std::vector exportValues() const override { return dht_->exportValues(); } void importValues(const std::vector& v) override { dht_->importValues(v); } NodeStats getNodesStats(sa_family_t af) const override { return dht_->getNodesStats(af); } + + NodeInfo getNodeInfo() + { + NodeInfo info; + info.id = getId(); + info.node_id = getNodeId(); + info.ipv4 = getNodesStats(AF_INET); + info.ipv6 = getNodesStats(AF_INET6); + std::tie(info.storage_size, info.storage_values) = getStoreSize(); + std::tie(info.local_storage_size, info.local_storage_values) = getLocalStoreSize(); + if (auto sock = getSocket()) { + info.bound4 = sock->getBoundRef(AF_INET).getPort(); + info.bound6 = sock->getBoundRef(AF_INET6).getPort(); + } + return info; + } + std::vector getNodeMessageStats(bool in = false) override { return dht_->getNodeMessageStats(in); } std::string getRoutingTablesLog(sa_family_t af) const override { return dht_->getRoutingTablesLog(af); } std::string getSearchesLog(sa_family_t af) const override { return dht_->getSearchesLog(af); } diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index 9c19bd6b..21b0a6a9 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -571,20 +571,10 @@ DhtRunner::getNodesStats(sa_family_t af) const NodeInfo DhtRunner::getNodeInfo() const { - std::lock_guard lck(dht_mtx); NodeInfo info {}; - if (dht_) { - info.id = dht_->getId(); - info.node_id = dht_->getNodeId(); - info.ipv4 = dht_->getNodesStats(AF_INET); - info.ipv6 = dht_->getNodesStats(AF_INET6); - std::tie(info.storage_size, info.storage_values) = dht_->getStoreSize(); - std::tie(info.local_storage_size, info.local_storage_values) = dht_->getLocalStoreSize(); - if (auto sock = dht_->getSocket()) { - info.bound4 = sock->getBoundRef(AF_INET).getPort(); - info.bound6 = sock->getBoundRef(AF_INET6).getPort(); - } - } + std::lock_guard lck(dht_mtx); + if (dht_) + info = dht_->getNodeInfo(); info.ongoing_ops = ongoing_ops; return info; } @@ -596,18 +586,8 @@ DhtRunner::getNodeInfo(std::function)> cb) ongoing_ops++; pending_ops_prio.emplace([cb = std::move(cb), this](SecureDht& dht) { auto sinfo = std::make_shared(); - auto& info = *sinfo; - info.id = dht.getId(); - info.node_id = dht.getNodeId(); - info.ipv4 = dht.getNodesStats(AF_INET); - info.ipv6 = dht.getNodesStats(AF_INET6); - std::tie(info.storage_size, info.storage_values) = dht.getStoreSize(); - std::tie(info.local_storage_size, info.local_storage_values) = dht.getLocalStoreSize(); - if (auto sock = dht.getSocket()) { - info.bound4 = sock->getBoundRef(AF_INET).getPort(); - info.bound6 = sock->getBoundRef(AF_INET6).getPort(); - } - info.ongoing_ops = ongoing_ops; + *sinfo = dht.getNodeInfo(); + sinfo->ongoing_ops = ongoing_ops; cb(std::move(sinfo)); opEnded(); });