TCPServer: pass connection fails to clients

This commit is contained in:
SChernykh
2025-08-02 14:59:49 +02:00
parent b1348b6c80
commit 07259e029a
4 changed files with 4 additions and 0 deletions

View File

@@ -895,6 +895,7 @@ void MergeMiningClientTari::TariClient::break_pairing()
{
if (is_paired()) {
m_pairedClient->m_pairedClient = nullptr;
m_pairedClient->m_pairedClientSavedResetCounter = std::numeric_limits<uint32_t>::max();
m_pairedClient->close();
}
m_pairedClient = nullptr;

View File

@@ -116,6 +116,7 @@ private:
void reset() override { break_pairing(); }
[[nodiscard]] bool on_connect() override;
[[nodiscard]] bool on_read(const char* data, uint32_t size) override;
void on_connect_failed(int /*err*/) override { break_pairing(); }
void on_disconnected() override { break_pairing(); }
alignas(8) char m_buf[BUF_SIZE];

View File

@@ -766,6 +766,7 @@ void TCPServer::on_connect(uv_connect_t* req, int status)
LOGWARN(5, "failed to connect to " << static_cast<char*>(client->m_addrString) << ", error " << uv_err_name(status));
}
server->on_connect_failed(client->m_isV6, client->m_addr, client->m_port);
client->on_connect_failed(status);
uv_close(reinterpret_cast<uv_handle_t*>(&client->m_socket), on_connection_error);
return;
}

View File

@@ -65,6 +65,7 @@ public:
[[nodiscard]] virtual bool on_connect() = 0;
[[nodiscard]] virtual bool on_read(const char* data, uint32_t size) = 0;
[[nodiscard]] bool on_proxy_handshake(const char* data, uint32_t size);
virtual void on_connect_failed(int /*err*/) {}
virtual void on_read_failed(int /*err*/) {}
virtual void on_disconnected() {}