diff --git a/include/libtorrent/session_settings.hpp b/include/libtorrent/session_settings.hpp index 071e0d5c0..3d48fbbba 100644 --- a/include/libtorrent/session_settings.hpp +++ b/include/libtorrent/session_settings.hpp @@ -115,7 +115,7 @@ namespace libtorrent , max_outstanding_disk_bytes_per_connection(64 * 1024) , handshake_timeout(10) #ifndef TORRENT_DISABLE_DHT - , use_dht_as_fallback(true) + , use_dht_as_fallback(false) #endif , free_torrent_hashes(true) , upnp_ignore_nonrouters(true) diff --git a/src/kademlia/rpc_manager.cpp b/src/kademlia/rpc_manager.cpp index 3285577c5..c57059984 100644 --- a/src/kademlia/rpc_manager.cpp +++ b/src/kademlia/rpc_manager.cpp @@ -307,7 +307,9 @@ time_duration rpc_manager::tick() if (m_next_transaction_id == m_oldest_transaction_id) return milliseconds(timeout_ms); - std::vector timeouts; + std::vector timeouts; + + time_duration ret = milliseconds(timeout_ms); for (;m_next_transaction_id != m_oldest_transaction_id; m_oldest_transaction_id = (m_oldest_transaction_id + 1) % max_transactions) @@ -321,8 +323,16 @@ time_duration rpc_manager::tick() time_duration diff = o->sent + milliseconds(timeout_ms) - time_now(); if (diff > seconds(0)) { - if (diff < seconds(1)) return seconds(1); - return diff; + if (diff < seconds(1)) + { + ret = seconds(1); + break; + } + else + { + ret = diff; + break; + } } try @@ -343,7 +353,7 @@ time_duration rpc_manager::tick() // generate new requests. We need to swap, since the // destrutors may add more observers to the m_aborted_transactions std::vector().swap(m_aborted_transactions); - return milliseconds(timeout_ms); + return ret; } unsigned int rpc_manager::new_transaction_id(observer_ptr o)