LibTLS: Avoid busy-wait between ClientHello and ServerHello

This commit also adds a timeout timer to cancel the connection if the
server does not respond to the hello request in 10 seconds.
This commit is contained in:
AnotherTest 2020-05-30 19:53:07 +04:30 committed by Andreas Kling
commit d54d2892a9
Notes: sideshowbarker 2024-07-19 05:56:33 +09:00
5 changed files with 52 additions and 15 deletions

View file

@ -238,6 +238,16 @@ ssize_t TLSv12::handle_finished(const ByteBuffer& buffer, WritePacketStage& writ
#endif
m_context.connection_status = ConnectionStatus::Established;
if (m_handshake_timeout_timer) {
// Disable the handshake timeout timer as handshake has been established.
m_handshake_timeout_timer->stop();
m_handshake_timeout_timer->remove_from_parent();
m_handshake_timeout_timer = nullptr;
}
if (on_tls_ready_to_write)
on_tls_ready_to_write(*this);
return handle_message(buffer);
}