diff --git a/include/opendht/callbacks.h b/include/opendht/callbacks.h index 25a8f4574a45e63badd1f29d1a95a61344592d7e..21fad568b28d30da1cf8af53b903feb9657dffdb 100644 --- a/include/opendht/callbacks.h +++ b/include/opendht/callbacks.h @@ -44,6 +44,13 @@ enum class NodeStatus { Connected // 1+ good nodes }; +inline constexpr const char* +statusToStr(NodeStatus status) { + return status == NodeStatus::Connected ? "connected" : ( + status == NodeStatus::Connecting ? "connecting" : + "disconnected"); +} + struct OPENDHT_PUBLIC NodeStats { unsigned good_nodes {0}, dubious_nodes {0}, diff --git a/tools/dhtchat.cpp b/tools/dhtchat.cpp index 2083287dba62f9117977ad0489071475cc35ea0e..baed3b6102f92f683577ab851a4b9d856fbf4c9a 100644 --- a/tools/dhtchat.cpp +++ b/tools/dhtchat.cpp @@ -57,19 +57,13 @@ main(int argc, char **argv) DhtRunner dht; try { + params.generate_identity = true; auto dhtConf = getDhtConfig(params); dht.run(params.port, dhtConf.first, std::move(dhtConf.second)); if (not params.bootstrap.first.empty()) dht.bootstrap(params.bootstrap.first.c_str(), params.bootstrap.second.c_str()); -#ifdef OPENDHT_PROXY_CLIENT - if (!params.proxyclient.empty()) { - dht.setProxyServer(params.proxyclient); - dht.enableProxy(true); - } -#endif //OPENDHT_PROXY_CLIENT - print_node_info(dht, params); std::cout << " type 'c {hash}' to join a channel" << std::endl << std::endl; diff --git a/tools/tools_common.h b/tools/tools_common.h index 352a6edc2bc8e441c43bb24477957ad8e9ff787d..ff6999a34dc33a205650872c6cecd338d02bf78b 100644 --- a/tools/tools_common.h +++ b/tools/tools_common.h @@ -171,6 +171,11 @@ getDhtConfig(dht_params& params) else context.logger = dht::log::getStdLogger(); } + if (context.logger) { + context.statusChangedCallback = [logger = *context.logger](dht::NodeStatus status4, dht::NodeStatus status6) { + logger.WARN("Connectivity changed: IPv4: %s, IPv6: %s", dht::statusToStr(status4), dht::statusToStr(status6)); + }; + } return {std::move(config), std::move(context)}; }