diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index 3812043c3fd83a81a03f259f331e9899805dee96..d0a1bf853e24b392165c9a17818c6e246c00477d 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -152,12 +152,12 @@ DhtRunner::run(const SockAddr& local4, const SockAddr& local6, const DhtRunner:: if (config.peer_discovery or config.peer_publish) { try { peerDiscovery4_.reset(new PeerDiscovery(AF_INET, port_multicast)); - }catch(std::exception &exception){ + } catch(std::exception &exception){ perror(exception.what()); } try{ peerDiscovery6_.reset(new PeerDiscovery(AF_INET6, port_multicast)); - }catch(std::exception &exception){ + } catch(std::exception &exception){ perror(exception.what()); } } @@ -645,7 +645,7 @@ DhtRunner::startNetwork(const SockAddr sin4, const SockAddr sin6) else continue; - if (rc > 0 && rc != static_cast<int>(getNodeId().size() + 2)) { + if (rc > 0) { { std::lock_guard<std::mutex> lck(sock_mtx); if (rcv.size() >= RX_QUEUE_MAX_SIZE) { diff --git a/tests/peerdiscoverytester.cpp b/tests/peerdiscoverytester.cpp index 85c164e9162db58f05136e107c9f5d37aed03c2e..9c41c593e2ab28fdca834adabb595811d1c4309c 100644 --- a/tests/peerdiscoverytester.cpp +++ b/tests/peerdiscoverytester.cpp @@ -31,22 +31,29 @@ void PeerDiscoveryTester::testTransmission_ipv4(){ dht::InfoHash data_n = dht::InfoHash::get("applepin"); int port = 2222; in_port_t port_n = 50000; - - dht::PeerDiscovery test_n(AF_INET, port); - dht::PeerDiscovery test_s(AF_INET, port); - - test_s.startDiscovery([&](const dht::InfoHash& node, const dht::SockAddr& addr){ - CPPUNIT_ASSERT_EQUAL(data_n, node); - CPPUNIT_ASSERT_EQUAL(port_n, addr.getPort()); - }); - - test_n.startPublish(data_n, port_n); - - sleep(5); - test_n.stop(); - test_s.stop(); - test_n.join(); - test_s.join(); + try{ + dht::PeerDiscovery test_n(AF_INET, port); + dht::PeerDiscovery test_s(AF_INET, port); + try{ + test_s.startDiscovery([&](const dht::InfoHash& node, const dht::SockAddr& addr){ + CPPUNIT_ASSERT_EQUAL(data_n, node); + CPPUNIT_ASSERT_EQUAL(port_n, addr.getPort()); + }); + + test_n.startPublish(data_n,port_n); + + sleep(5); + test_n.stop(); + test_s.stop(); + test_n.join(); + test_s.join(); + } catch(std::exception &exception){ + perror(exception.what()); + CPPUNIT_ASSERT(false); + } + } catch(std::exception &exception){ + perror(exception.what()); + } } void PeerDiscoveryTester::testTransmission_ipv6(){ @@ -55,22 +62,30 @@ void PeerDiscoveryTester::testTransmission_ipv6(){ dht::InfoHash data_n = dht::InfoHash::get("applepin"); int port = 3333; in_port_t port_n = 50001; - - dht::PeerDiscovery test_n(AF_INET6,port); - dht::PeerDiscovery test_s(AF_INET6,port); - - test_s.startDiscovery([&](const dht::InfoHash& node, const dht::SockAddr& addr){ - CPPUNIT_ASSERT_EQUAL(data_n, node); - CPPUNIT_ASSERT_EQUAL(port_n, addr.getPort()); - }); - - test_n.startPublish(data_n,port_n); - - sleep(5); - test_n.stop(); - test_s.stop(); - test_n.join(); - test_s.join(); + try{ + dht::PeerDiscovery test_n(AF_INET6,port); + dht::PeerDiscovery test_s(AF_INET6,port); + + try{ + test_s.startDiscovery([&](const dht::InfoHash& node, const dht::SockAddr& addr){ + CPPUNIT_ASSERT_EQUAL(data_n, node); + CPPUNIT_ASSERT_EQUAL(port_n, addr.getPort()); + }); + + test_n.startPublish(data_n,port_n); + + sleep(5); + test_n.stop(); + test_s.stop(); + test_n.join(); + test_s.join(); + } catch(std::exception &exception){ + perror(exception.what()); + CPPUNIT_ASSERT(false); + } + } catch(std::exception &exception){ + perror(exception.what()); + } }