From d6ee44b6406d74515ecc0d6470b5476a32f3055f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Tue, 7 Jun 2022 15:38:38 -0400
Subject: [PATCH] dhtrunner: use consistent path for state

---
 src/dhtrunner.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index ded8baca..8e6781e4 100644
--- a/src/dhtrunner.cpp
+++ b/src/dhtrunner.cpp
@@ -119,8 +119,9 @@ DhtRunner::run(const Config& config, Context&& context)
             local6.setFamily(AF_INET6);
         }
         auto state_path = config.dht_config.node_config.persist_path;
-        if (not state_path.empty() && (local4.getPort() == 0 || local6.getPort() == 0)) {
+        if (not state_path.empty())
             state_path += "_port.txt";
+        if (not state_path.empty() && (local4.getPort() == 0 || local6.getPort() == 0)) {
             std::ifstream inConfig(state_path);
             if (inConfig.is_open()) {
                 in_port_t port;
@@ -149,7 +150,7 @@ DhtRunner::run(const Config& config, Context&& context)
             context.sock.reset(new net::UdpSocket(local4, local6, context.logger));
         }
 
-        if (not state_path.empty()) {
+        if (not state_path.empty() and config.proxy_server.empty()) {
             std::ofstream outConfig(state_path);
             outConfig << context.sock->getBoundRef(AF_INET).getPort() << std::endl;
             outConfig << context.sock->getBoundRef(AF_INET6).getPort() << std::endl;
-- 
GitLab