From 7320568c3ca8818d16ac19b7518c7b6e7550bf8f Mon Sep 17 00:00:00 2001 From: arvidn Date: Sat, 11 Jan 2020 01:13:16 +0100 Subject: [PATCH] minor cleanup of debug logging for peer_list --- include/libtorrent/peer_list.hpp | 4 +--- src/peer_list.cpp | 5 +++++ src/torrent.cpp | 28 +++++++++++++++------------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/include/libtorrent/peer_list.hpp b/include/libtorrent/peer_list.hpp index b4e4be78a..94b1c7598 100644 --- a/include/libtorrent/peer_list.hpp +++ b/include/libtorrent/peer_list.hpp @@ -96,10 +96,8 @@ namespace libtorrent { struct erase_peer_flags_tag; using erase_peer_flags_t = flags::bitfield_flag; - class TORRENT_EXTRA_EXPORT peer_list : single_threaded + struct TORRENT_EXTRA_EXPORT peer_list : single_threaded { - public: - explicit peer_list(torrent_peer_allocator_interface& alloc); ~peer_list(); diff --git a/src/peer_list.cpp b/src/peer_list.cpp index 9056b8102..6dc38bdb7 100644 --- a/src/peer_list.cpp +++ b/src/peer_list.cpp @@ -96,9 +96,11 @@ namespace libtorrent { void peer_list::clear() { + INVARIANT_CHECK; for (auto const p : m_peers) m_peer_allocator.free_peer_entry(p); m_peers.clear(); + m_num_connect_candidates = 0; } peer_list::~peer_list() @@ -109,6 +111,7 @@ namespace libtorrent { void peer_list::set_max_failcount(torrent_state* state) { + INVARIANT_CHECK; if (state->max_failcount == m_max_failcount) return; recalculate_connect_candidates(state); @@ -171,6 +174,7 @@ namespace libtorrent { void peer_list::clear_peer_prio() { + INVARIANT_CHECK; for (auto& p : m_peers) p->peer_rank = 0; } @@ -405,6 +409,7 @@ namespace libtorrent { void peer_list::inc_failcount(torrent_peer* p) { + INVARIANT_CHECK; // failcount is a 5 bit value if (p->failcount == 31) return; diff --git a/src/torrent.cpp b/src/torrent.cpp index 4ab26bad4..d9368a37c 100644 --- a/src/torrent.cpp +++ b/src/torrent.cpp @@ -659,7 +659,7 @@ bool is_downloading_state(int const st) } #ifndef TORRENT_DISABLE_LOGGING - if (should_log()) + if (should_log() && !p.peers.empty()) { std::string str; for (auto const& peer : p.peers) @@ -2071,7 +2071,7 @@ bool is_downloading_state(int const st) } #ifndef TORRENT_DISABLE_LOGGING - if (should_log()) + if (should_log() && !m_add_torrent_params->peers.empty()) { error_code ec; std::string str; @@ -2728,7 +2728,7 @@ bool is_downloading_state(int const st) add_peer(p, peer_info::dht); #ifndef TORRENT_DISABLE_LOGGING - if (should_log()) + if (should_log() && !peers.empty()) { error_code ec; std::string str; @@ -3356,7 +3356,7 @@ bool is_downloading_state(int const st) } #ifndef TORRENT_DISABLE_LOGGING - if (should_log()) + if (should_log() && (!resp.peers4.empty() || !resp.peers6.empty())) { error_code ec; std::string str; @@ -3589,17 +3589,19 @@ bool is_downloading_state(int const st) } if (add_peer(host, peer_info::tracker)) + { state_updated(); #ifndef TORRENT_DISABLE_LOGGING - if (should_log()) - { - error_code ec; - debug_log("name-lookup add_peer() [ %s ] connect-candidates: %d" - , host.address().to_string(ec).c_str() - , m_peer_list ? m_peer_list->num_connect_candidates() : -1); - } + if (should_log()) + { + error_code ec; + debug_log("name-lookup add_peer() [ %s ] connect-candidates: %d" + , host.address().to_string(ec).c_str() + , m_peer_list ? m_peer_list->num_connect_candidates() : -1); + } #endif + } update_want_peers(); } catch (...) { handle_exception(); } @@ -6908,8 +6910,7 @@ bool is_downloading_state(int const st) return false; } - if (!is_downloading_state(m_state) - && valid_metadata()) + if (!is_downloading_state(m_state) && valid_metadata()) { p->disconnect(errors::torrent_not_ready, operation_t::bittorrent); return false; @@ -10661,6 +10662,7 @@ bool is_downloading_state(int const st) st->list_peers = m_peer_list ? m_peer_list->num_peers() : 0; st->list_seeds = m_peer_list ? m_peer_list->num_seeds() : 0; st->connect_candidates = m_peer_list ? m_peer_list->num_connect_candidates() : 0; + TORRENT_ASSERT(st->connect_candidates >= 0); st->seed_rank = seed_rank(settings()); st->all_time_upload = m_total_uploaded;