TCPServer: pass connection fails to clients
This commit is contained in:
@@ -895,6 +895,7 @@ void MergeMiningClientTari::TariClient::break_pairing()
|
|||||||
{
|
{
|
||||||
if (is_paired()) {
|
if (is_paired()) {
|
||||||
m_pairedClient->m_pairedClient = nullptr;
|
m_pairedClient->m_pairedClient = nullptr;
|
||||||
|
m_pairedClient->m_pairedClientSavedResetCounter = std::numeric_limits<uint32_t>::max();
|
||||||
m_pairedClient->close();
|
m_pairedClient->close();
|
||||||
}
|
}
|
||||||
m_pairedClient = nullptr;
|
m_pairedClient = nullptr;
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ private:
|
|||||||
void reset() override { break_pairing(); }
|
void reset() override { break_pairing(); }
|
||||||
[[nodiscard]] bool on_connect() override;
|
[[nodiscard]] bool on_connect() override;
|
||||||
[[nodiscard]] bool on_read(const char* data, uint32_t size) 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(); }
|
void on_disconnected() override { break_pairing(); }
|
||||||
|
|
||||||
alignas(8) char m_buf[BUF_SIZE];
|
alignas(8) char m_buf[BUF_SIZE];
|
||||||
|
|||||||
@@ -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));
|
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);
|
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);
|
uv_close(reinterpret_cast<uv_handle_t*>(&client->m_socket), on_connection_error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public:
|
|||||||
[[nodiscard]] virtual bool on_connect() = 0;
|
[[nodiscard]] virtual bool on_connect() = 0;
|
||||||
[[nodiscard]] virtual bool on_read(const char* data, uint32_t size) = 0;
|
[[nodiscard]] virtual bool on_read(const char* data, uint32_t size) = 0;
|
||||||
[[nodiscard]] bool on_proxy_handshake(const char* data, uint32_t size);
|
[[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_read_failed(int /*err*/) {}
|
||||||
virtual void on_disconnected() {}
|
virtual void on_disconnected() {}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user