diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index ded8baca92a7995f0b359cfa2229d98a432627ac..8e6781e4857d9303469e2767ad2bb8386f06bcbb 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;