From 7a65e1feb5ed3c55800269c83533cf629a9bbaa4 Mon Sep 17 00:00:00 2001 From: SChernykh Date: Sun, 8 Oct 2023 20:59:14 +0200 Subject: [PATCH] Check for updates in `status` and `version` commands --- src/console_commands.cpp | 18 +++++++++++++++--- src/p2p_server.cpp | 6 +++--- src/p2p_server.h | 3 ++- src/side_chain.cpp | 2 ++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/console_commands.cpp b/src/console_commands.cpp index 8c82068..0862f0b 100644 --- a/src/console_commands.cpp +++ b/src/console_commands.cpp @@ -202,13 +202,20 @@ static void do_status(p2pool *m_pool, const char * /* args */) if (m_pool->stratum_server()) { m_pool->stratum_server()->print_status(); } - if (m_pool->p2p_server()) { - m_pool->p2p_server()->print_status(); + + P2PServer* p2p = m_pool->p2p_server(); + if (p2p) { + p2p->print_status(); } + #ifdef WITH_RANDOMX m_pool->print_miner_status(); #endif bkg_jobs_tracker.print_status(); + + if (p2p) { + p2p->check_for_updates(true); + } } static void do_loglevel(p2pool * /* m_pool */, const char *args) @@ -312,9 +319,14 @@ static void do_exit(p2pool *m_pool, const char * /* args */) m_pool->stop(); } -static void do_version(p2pool* /* m_pool */, const char* /* args */) +static void do_version(p2pool* m_pool, const char* /* args */) { LOGINFO(0, log::LightCyan() << VERSION); + + const P2PServer* p2p = m_pool->p2p_server(); + if (p2p) { + p2p->check_for_updates(true); + } } void ConsoleCommands::allocCallback(uv_handle_t* handle, size_t /*suggested_size*/, uv_buf_t* buf) diff --git a/src/p2p_server.cpp b/src/p2p_server.cpp index e6f87f7..e121a17 100644 --- a/src/p2p_server.cpp +++ b/src/p2p_server.cpp @@ -1256,15 +1256,15 @@ void P2PServer::check_block_template() } } -void P2PServer::check_for_updates() const +void P2PServer::check_for_updates(bool forced) const { - if (m_timerCounter % (3600 / m_timerInterval) != 0) { + if (!forced && (m_timerCounter % (3600 / m_timerInterval) != 0)) { return; } const SideChain& s = m_pool->side_chain(); - if (s.precalcFinished() && s.p2pool_update_available()) { + if ((forced || s.precalcFinished()) && s.p2pool_update_available()) { LOGINFO(0, log::LightCyan() << "********************************************************************************"); LOGINFO(0, log::LightCyan() << "* An updated P2Pool version is available, visit p2pool.io for more information *"); LOGINFO(0, log::LightCyan() << "********************************************************************************"); diff --git a/src/p2p_server.h b/src/p2p_server.h index 90f46c9..4517737 100644 --- a/src/p2p_server.h +++ b/src/p2p_server.h @@ -177,6 +177,8 @@ public: const PoolBlock* find_block(const hash& id) const; + void check_for_updates(bool forced = false) const; + private: const char* get_log_category() const override; @@ -198,7 +200,6 @@ private: void download_missing_blocks(); void check_host(); void check_block_template(); - void check_for_updates() const; void update_peer_connections(); void update_peer_list(); void send_peer_list_request(P2PClient* client, uint64_t cur_time); diff --git a/src/side_chain.cpp b/src/side_chain.cpp index e571ab1..e08411d 100644 --- a/src/side_chain.cpp +++ b/src/side_chain.cpp @@ -2160,6 +2160,8 @@ void SideChain::prune_old_blocks() server1->show_workers_async(); server2->show_peers_async(); + + server2->check_for_updates(true); } m_pool->print_hosts();