Merge branch 'mxhess:main' into main
This commit is contained in:
@@ -165,7 +165,7 @@ typedef struct cmd {
|
|||||||
cmdfunc *func;
|
cmdfunc *func;
|
||||||
} cmd;
|
} cmd;
|
||||||
|
|
||||||
static cmdfunc do_help, do_status, do_loglevel, do_addpeers, do_droppeers, do_showpeers, do_showworkers, do_showbans, do_showhosts, do_nexthost, do_outpeers, do_inpeers, do_donatetime, do_exit, do_version;
|
static cmdfunc do_help, do_status, do_loglevel, do_addpeers, do_droppeers, do_showpeers, do_showworkers, do_showbans, do_unban, do_showhosts, do_nexthost, do_outpeers, do_inpeers, do_donatetime, do_exit, do_version;
|
||||||
|
|
||||||
#ifdef WITH_RANDOMX
|
#ifdef WITH_RANDOMX
|
||||||
static cmdfunc do_start_mining, do_stop_mining;
|
static cmdfunc do_start_mining, do_stop_mining;
|
||||||
@@ -180,6 +180,7 @@ static cmd cmds[] = {
|
|||||||
{ STRCONST("peers"), "", "show all peers", do_showpeers },
|
{ STRCONST("peers"), "", "show all peers", do_showpeers },
|
||||||
{ STRCONST("workers"), "", "show all connected workers", do_showworkers },
|
{ STRCONST("workers"), "", "show all connected workers", do_showworkers },
|
||||||
{ STRCONST("bans"), "", "show all banned IPs", do_showbans },
|
{ STRCONST("bans"), "", "show all banned IPs", do_showbans },
|
||||||
|
{ STRCONST("unban"), "[IP]", "unban peer (or all if no IP given)", do_unban },
|
||||||
{ STRCONST("hosts"), "", "show Monero hosts", do_showhosts },
|
{ STRCONST("hosts"), "", "show Monero hosts", do_showhosts },
|
||||||
{ STRCONST("next_host"), "", "switch to the next Monero host", do_nexthost },
|
{ STRCONST("next_host"), "", "switch to the next Monero host", do_nexthost },
|
||||||
{ STRCONST("outpeers"), "<N>", "set maximum number of outgoing connections", do_outpeers },
|
{ STRCONST("outpeers"), "<N>", "set maximum number of outgoing connections", do_outpeers },
|
||||||
@@ -349,6 +350,16 @@ static void do_showbans(p2pool* m_pool, const char* /* args */)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void do_unban(p2pool* m_pool, const char* /* args */)
|
||||||
|
{
|
||||||
|
if (m_pool->stratum_server()) {
|
||||||
|
m_pool->stratum_server()->clear_bans();
|
||||||
|
}
|
||||||
|
if (m_pool->p2p_server()) {
|
||||||
|
m_pool->p2p_server()->clear_bans();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// cppcheck-suppress constParameterCallback
|
// cppcheck-suppress constParameterCallback
|
||||||
static void do_showhosts(p2pool* m_pool, const char* /* args */)
|
static void do_showhosts(p2pool* m_pool, const char* /* args */)
|
||||||
{
|
{
|
||||||
@@ -516,3 +527,4 @@ ConsoleCommands::~ConsoleCommands()
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace p2pool
|
} // namespace p2pool
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ static constexpr std::array<const char*, 2> seed_nodes_nano{ "seed01.whiskymine.
|
|||||||
static constexpr int DEFAULT_BACKLOG = 16;
|
static constexpr int DEFAULT_BACKLOG = 16;
|
||||||
static constexpr uint64_t DEFAULT_BAN_TIME = 600;
|
static constexpr uint64_t DEFAULT_BAN_TIME = 600;
|
||||||
static constexpr uint64_t PEER_REQUEST_DELAY = 60;
|
static constexpr uint64_t PEER_REQUEST_DELAY = 60;
|
||||||
|
static constexpr uint8_t TX_VERSION = 60;
|
||||||
|
|
||||||
namespace p2pool {
|
namespace p2pool {
|
||||||
|
|
||||||
@@ -3182,7 +3183,8 @@ bool P2PServer::P2PClient::on_monero_block_broadcast(const uint8_t* buf, uint32_
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buf[data.header_size] != TX_VERSION) {
|
uint8_t tx_ver = buf[data.header_size];
|
||||||
|
if (tx_ver != 4 && tx_ver != TX_VERSION) {
|
||||||
LOGWARN(3, "Invalid MONERO_BLOCK_BROADCAST: TX_VERSION byte not found");
|
LOGWARN(3, "Invalid MONERO_BLOCK_BROADCAST: TX_VERSION byte not found");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -571,6 +571,14 @@ void TCPServer::print_bans()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCPServer::clear_bans()
|
||||||
|
{
|
||||||
|
MutexLock lock(m_bansLock);
|
||||||
|
size_t count = m_bans.size();
|
||||||
|
m_bans.clear();
|
||||||
|
LOGINFO(0, "cleared " << count << " banned IPs");
|
||||||
|
}
|
||||||
|
|
||||||
bool TCPServer::send_internal(Client* client, const Callback<size_t, uint8_t*, size_t>::Base& callback, bool raw)
|
bool TCPServer::send_internal(Client* client, const Callback<size_t, uint8_t*, size_t>::Base& callback, bool raw)
|
||||||
{
|
{
|
||||||
check_event_loop_thread(__func__);
|
check_event_loop_thread(__func__);
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ public:
|
|||||||
void drop_connections_async() { if (m_finished.load() == 0) { uv_async_send(&m_dropConnectionsAsync); } }
|
void drop_connections_async() { if (m_finished.load() == 0) { uv_async_send(&m_dropConnectionsAsync); } }
|
||||||
void shutdown_tcp();
|
void shutdown_tcp();
|
||||||
virtual void print_status();
|
virtual void print_status();
|
||||||
|
virtual void clear_bans();
|
||||||
|
|
||||||
[[nodiscard]] uv_loop_t* get_loop() { return &m_loop; }
|
[[nodiscard]] uv_loop_t* get_loop() { return &m_loop; }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user