diff --git a/include/opendht/dht_proxy_server.h b/include/opendht/dht_proxy_server.h index 346a7c84da39c6285f0328084e03423609c213bc..a3720d1d0cb8de9d9e4080492fca912505d5d73c 100644 --- a/include/opendht/dht_proxy_server.h +++ b/include/opendht/dht_proxy_server.h @@ -316,6 +316,7 @@ private: std::shared_ptr<DhtRunner> dht_; Json::StreamWriterBuilder jsonBuilder_; Json::CharReaderBuilder jsonReaderBuilder_; + std::mt19937_64 rd {crypto::getSeededRandomEngine<std::mt19937_64>()}; // http server std::thread serverThread_; diff --git a/src/dht_proxy_server.cpp b/src/dht_proxy_server.cpp index 4c7dbc48ef7e5920dbd548ac5e95bc063b46c12f..84957cffe4257d24afd6fd194b44182e817bd8b0 100644 --- a/src/dht_proxy_server.cpp +++ b/src/dht_proxy_server.cpp @@ -964,6 +964,8 @@ DhtProxyServer::put(restinio::request_handle_t request, return response.done(); } } + if (value->id == Value::INVALID_ID) + value->id = std::uniform_int_distribution<Value::Id>{1}(rd); } auto vid = value->id;