From 2aa130eda967981073aa8a5eb2d99d5b523c7120 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Sat, 22 Oct 2016 14:19:46 +0900 Subject: [PATCH] More work on dht manager. --- src/core/dht_manager.cc | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/core/dht_manager.cc b/src/core/dht_manager.cc index 24a52a36..5628cb2b 100644 --- a/src/core/dht_manager.cc +++ b/src/core/dht_manager.cc @@ -123,26 +123,22 @@ DhtManager::start_dht() { if (port <= 0) return; - LT_LOG_THIS("starting server (port:%d)", port); - - try { - torrent::dht_manager()->start(port); - torrent::dht_manager()->reset_statistics(); - - m_updateTimeout.slot() = std::bind(&DhtManager::update, this); - priority_queue_insert(&taskScheduler, &m_updateTimeout, (cachedTime + rak::timer::from_seconds(60)).round_seconds()); - - m_dhtPrevCycle = 0; - m_dhtPrevQueriesSent = 0; - m_dhtPrevRepliesReceived = 0; - m_dhtPrevQueriesReceived = 0; - m_dhtPrevBytesUp = 0; - m_dhtPrevBytesDown = 0; - - } catch (torrent::local_error& e) { - LT_LOG_THIS("server start failed (error:%s)", e.what()); + if (!torrent::dht_manager()->start(port)) { m_start = dht_off; + return; } + + torrent::dht_manager()->reset_statistics(); + + m_updateTimeout.slot() = std::bind(&DhtManager::update, this); + priority_queue_insert(&taskScheduler, &m_updateTimeout, (cachedTime + rak::timer::from_seconds(60)).round_seconds()); + + m_dhtPrevCycle = 0; + m_dhtPrevQueriesSent = 0; + m_dhtPrevRepliesReceived = 0; + m_dhtPrevQueriesReceived = 0; + m_dhtPrevBytesUp = 0; + m_dhtPrevBytesDown = 0; } void