[WS] Fix peer stuck in CLOSING state

This was due by the buffer being cleared on close (including in closing
state) preventing further reads.

This commit changes the close logic to only clear the buffer when the
peer connection has been fully closed (acknowledged by the other end, or
closed due to a "broken" connection).
This commit is contained in:
Fabio Alessandrelli
2025-01-18 15:54:38 +01:00
parent 36a62d0c6a
commit 81181c5941

View File

@ -860,10 +860,12 @@ void WSLPeer::close(int p_code, String p_reason) {
}
}
heartbeat_waiting = false;
in_buffer.clear();
packet_buffer.resize(0);
pending_message.clear();
if (ready_state == STATE_CLOSED) {
heartbeat_waiting = false;
in_buffer.clear();
packet_buffer.resize(0);
pending_message.clear();
}
}
IPAddress WSLPeer::get_connected_host() const {