diff --git a/include/opendht/dhtrunner.h b/include/opendht/dhtrunner.h index 847952630dec780bd1b150b5adf78066904a03af..ec7a07bb6bb352c69957a5eec9f2929cd3432afb 100644 --- a/include/opendht/dhtrunner.h +++ b/include/opendht/dhtrunner.h @@ -66,6 +66,8 @@ public: struct Context { std::unique_ptr<Logger> logger {}; std::shared_ptr<PeerDiscovery> peerDiscovery {}; + StatusCallback statusChangedCallback {}; + CertificateStoreQuery certificateStore {}; Context() {} }; diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index c22501ca94098f57e6df4540519097bb3b5ead67..bd7816e446026f4a2432dbeaaab5cb9203a3bacc 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -114,6 +114,12 @@ DhtRunner::run(const SockAddr& local4, const SockAddr& local6, const DhtRunner:: if (context.logger and dht_via_proxy_) { dht_via_proxy_->setLogger(*context.logger); } + statusCb = std::move(context.statusChangedCallback); + if (context.certificateStore) { + dht_->setLocalCertificateStore(std::move(context.certificateStore)); + if (dht_via_proxy_) + dht_via_proxy_->setLocalCertificateStore(std::move(context.certificateStore)); + } running = true; if (not config.threaded)