diff --git a/tools/dhtnode.cpp b/tools/dhtnode.cpp index 83c6c494e8548a3c00ce30af9980fea036cc343d..b0dbc31dd6f4ef718a5a69e00c19496379c9d62d 100644 --- a/tools/dhtnode.cpp +++ b/tools/dhtnode.cpp @@ -242,14 +242,18 @@ void cmd_loop(std::shared_ptr<DhtRunner>& node, dht_params& params iss >> idstr; #endif // OPENDHT_PUSH_NOTIFICATIONS try { - unsigned int port = std::stoi(idstr); - proxies.emplace(port, std::unique_ptr<DhtProxyServer>( - new DhtProxyServer( - params.generate_identity ? params.id : dht::crypto::Identity{}, node, port + if (params.id.first and params.id.second){ + unsigned int port = std::stoi(idstr); + proxies.emplace(port, std::unique_ptr<DhtProxyServer>( + new DhtProxyServer(params.id, node, port #ifdef OPENDHT_PUSH_NOTIFICATIONS - ,pushServer + ,pushServer #endif - ))); + ))); + } + else { + std::cerr << "Missing Identity private key or certificate" << std::endl; + } } catch (...) { } continue; } else if (op == "psp") { @@ -528,18 +532,14 @@ main(int argc, char **argv) auto node = std::make_shared<DhtRunner>(); try { -#ifndef OPENDHT_PROXY_SERVER if (not params.id.first and params.generate_identity) { -#endif auto node_ca = std::make_unique<dht::crypto::Identity>(dht::crypto::generateEcIdentity("DHT Node CA")); params.id = dht::crypto::generateIdentity("DHT Node", *node_ca); if (not params.save_identity.empty()) { dht::crypto::saveIdentity(*node_ca, params.save_identity + "_ca", params.privkey_pwd); dht::crypto::saveIdentity(params.id, params.save_identity, params.privkey_pwd); } -#ifndef OPENDHT_PROXY_SERVER } -#endif dht::DhtRunner::Config config {}; config.dht_config.node_config.network = params.network; @@ -575,14 +575,13 @@ main(int argc, char **argv) #ifdef OPENDHT_PROXY_SERVER std::map<in_port_t, std::unique_ptr<DhtProxyServer>> proxies; #endif - if (params.proxyserverssl != 0) { + if (params.proxyserverssl and params.id.first and params.id.second){ #ifdef OPENDHT_PROXY_SERVER proxies.emplace(params.proxyserverssl, std::unique_ptr<DhtProxyServer>( - new DhtProxyServer( - params.generate_identity ? params.id : dht::crypto::Identity{}, - node, params.proxyserverssl, params.pushserver, context.logger))); + new DhtProxyServer(params.id, + node, params.proxyserverssl, params.pushserver, context.logger))); } - if (params.proxyserver != 0) { + if (params.proxyserver) { proxies.emplace(params.proxyserver, std::unique_ptr<DhtProxyServer>( new DhtProxyServer( dht::crypto::Identity{},