From d8b6a405b9f2ae87cbbfd7ebc8e91aaec019530c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 8 Dec 2023 14:19:25 -0500 Subject: [PATCH] ConnectionManager: allow to provide RNG through configuration Change-Id: Ic24123e329b221f5f1e24d3df6f3cc93649c4591 --- include/connectionmanager.h | 2 ++ src/connectionmanager.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/connectionmanager.h b/include/connectionmanager.h index 5a97280..086981f 100644 --- a/include/connectionmanager.h +++ b/include/connectionmanager.h @@ -321,6 +321,8 @@ struct ConnectionManager::Config */ bool getUPnPActive() const; + /** Optional pseudo random generator to be used, allowing to control the seed. */ + std::unique_ptr<std::mt19937_64> rng; }; } // namespace dhtnet \ No newline at end of file diff --git a/src/connectionmanager.cpp b/src/connectionmanager.cpp index 87704a8..2e0e99b 100644 --- a/src/connectionmanager.cpp +++ b/src/connectionmanager.cpp @@ -381,7 +381,7 @@ class ConnectionManager::Impl : public std::enable_shared_from_this<ConnectionMa public: explicit Impl(std::shared_ptr<ConnectionManager::Config> config_) : config_ {std::move(createConfig(config_))} - , rand_ {dht::crypto::getSeededRandomEngine<std::mt19937_64>()} + , rand_ {config_->rng ? *config_->rng : dht::crypto::getSeededRandomEngine<std::mt19937_64>()} { loadTreatedMessages(); if(!config_->ioContext) { -- GitLab