diff --git a/CMakeLists.txt b/CMakeLists.txt index 38001fe5c632f39ec166eb62f4c6e68c28d4aa6a..8f6e3af55078ebb3628e0f4d17913edf4598c795 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,7 +215,7 @@ list (APPEND opendht_HEADERS if (OPENDHT_PEER_DISCOVERY) list (APPEND opendht_SOURCES src/peer_discovery.cpp) list (APPEND opendht_HEADERS include/opendht/peer_discovery.h) - add_definitions(-DOPENDHT_PEERDISCOVERY) + add_definitions(-DOPENDHT_PEER_DISCOVERY) endif() if (OPENDHT_PYTHON) @@ -388,8 +388,6 @@ if (OPENDHT_TESTS) tests/cryptotester.cpp tests/dhtrunnertester.h tests/dhtrunnertester.cpp - tests/peerdiscoverytester.h - tests/peerdiscoverytester.cpp tests/threadpooltester.h tests/threadpooltester.cpp ) diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index ff0fd48d3025c5270de590ee7aeb9b24f828ed5d..60f8c4d9a08e1b84bfb2dcc105413ad038dfbfd1 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -20,9 +20,10 @@ #include "dhtrunner.h" #include "securedht.h" -#include "peer_discovery.h" #include "network_utils.h" - +#ifdef OPENDHT_PEER_DISCOVERY +#include "peer_discovery.h" +#endif #ifdef OPENDHT_PROXY_CLIENT #include "dht_proxy_client.h" #endif @@ -124,7 +125,8 @@ DhtRunner::run(const Config& config, Context&& context) { std::lock_guard<std::mutex> lck(sock_mtx); if (rcv.size() >= RX_QUEUE_MAX_SIZE) { - std::cerr << "Dropping packet: queue is full!" << std::endl; + if (logger_) + logger_->e("Dropping packet: queue is full!"); rcv.pop(); } rcv.emplace(std::move(pkt)); @@ -184,21 +186,28 @@ DhtRunner::run(const Config& config, Context&& context) }); if (config.peer_discovery or config.peer_publish) { +#ifdef OPENDHT_PEER_DISCOVERY peerDiscovery_ = context.peerDiscovery ? std::move(context.peerDiscovery) : std::make_shared<PeerDiscovery>(); +#else + std::cerr << "Peer discovery requested but OpenDHT built without peer discovery support." << std::endl; +#endif } auto netId = config.dht_config.node_config.network; if (config.peer_discovery) { +#ifdef OPENDHT_PEER_DISCOVERY peerDiscovery_->startDiscovery<NodeInsertionPack>(PEER_DISCOVERY_DHT_SERVICE, [this, netId](NodeInsertionPack&& v, SockAddr&& addr){ addr.setPort(v.port); if (v.nodeId != dht_->getNodeId() && netId == v.net){ bootstrap(v.nodeId, addr); } }); +#endif } if (config.peer_publish) { +#ifdef OPENDHT_PEER_DISCOVERY msgpack::sbuffer sbuf_node; NodeInsertionPack adc; adc.net = netId; @@ -216,6 +225,7 @@ DhtRunner::run(const Config& config, Context&& context) msgpack::pack(sbuf_node, adc); peerDiscovery_->startPublish(AF_INET6, PEER_DISCOVERY_DHT_SERVICE, sbuf_node); } +#endif } } @@ -292,8 +302,10 @@ DhtRunner::join() return; cv.notify_all(); bootstrap_cv.notify_all(); +#ifdef OPENDHT_PEER_DISCOVERY if (peerDiscovery_) peerDiscovery_->stop(); +#endif if (dht_) if (auto sock = dht_->getSocket()) sock->stop();