diff --git a/tools/dhtchat.cpp b/tools/dhtchat.cpp index 2dff83632c6c94bf632de6833d99f7babe9503cc..eb1c9d7ff4a50fe9099e6998f9ae8b51b92ac516 100644 --- a/tools/dhtchat.cpp +++ b/tools/dhtchat.cpp @@ -62,16 +62,37 @@ main(int argc, char **argv) DhtRunner dht; try { - dht.run(params.port, dht::crypto::generateIdentity("DHT Chat Node"), true, params.network); + if (not params.id.first) { + auto node_ca = std::make_unique<dht::crypto::Identity>(dht::crypto::generateEcIdentity("DHT Node CA")); + params.id = dht::crypto::generateIdentity("DHT Chat 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); + } + } + dht::DhtRunner::Config config {}; + config.dht_config.node_config.network = params.network; + config.dht_config.node_config.maintain_storage = false; + config.dht_config.node_config.persist_path = params.persist_path; + config.dht_config.id = params.id; + config.threaded = true; + config.proxy_server = params.proxyclient; + config.push_node_id = "dhtnode"; + config.push_token = params.devicekey; + config.peer_discovery = params.peer_discovery; + config.peer_publish = params.peer_discovery; + + dht::DhtRunner::Context context {}; if (params.log) { - if (params.syslog) - log::enableSyslog(dht, "dhtnode"); + if (params.syslog or (params.daemonize and params.logfile.empty())) + context.logger = log::getSyslogLogger("dhtnode"); else if (not params.logfile.empty()) - log::enableFileLogging(dht, params.logfile); + context.logger = log::getFileLogger(params.logfile); else - log::enableLogging(dht); + context.logger = log::getStdLogger(); } + dht.run(params.port, config, std::move(context)); if (not params.bootstrap.first.empty()) dht.bootstrap(params.bootstrap.first.c_str(), params.bootstrap.second.c_str()); diff --git a/tools/dhtnode.cpp b/tools/dhtnode.cpp index 06d7799f416d63ca5b2fbe872ca03e2b562cc1dc..b80d8cb8db6585e48290ede5bbd33ce2d7ec494c 100644 --- a/tools/dhtnode.cpp +++ b/tools/dhtnode.cpp @@ -549,10 +549,9 @@ main(int argc, char **argv) config.threaded = true; config.proxy_server = params.proxyclient; config.push_node_id = "dhtnode"; + config.push_token = params.devicekey; config.peer_discovery = params.peer_discovery; config.peer_publish = params.peer_discovery; - if (not params.proxyclient.empty()) - node->setPushNotificationToken(params.devicekey); dht::DhtRunner::Context context {}; if (params.log) { @@ -564,8 +563,6 @@ main(int argc, char **argv) context.logger = log::getStdLogger(); } node->run(params.port, config, std::move(context)); - if (context.logger) - log::enableLogging(*node); if (not params.bootstrap.first.empty()) { std::cout << "Bootstrap: " << params.bootstrap.first << ":" << params.bootstrap.second << std::endl;