Improved exception handling and telnet client disconnect

This commit is contained in:
Cristi 2026-03-24 15:23:00 +02:00 committed by grossmj
parent 7684ce60ce
commit c739a16d70
No known key found for this signature in database
GPG Key ID: 1E7DD6DBB53FF3D7
2 changed files with 5 additions and 1 deletions

View File

@ -251,8 +251,12 @@ class AsyncioTelnetServer:
async def _invoke_window_size_changed(self, connection, columns, rows): async def _invoke_window_size_changed(self, connection, columns, rows):
try: try:
await connection.window_size_changed(columns, rows) await connection.window_size_changed(columns, rows)
except asyncio.CancelledError:
raise
except (ConnectionError, OSError): except (ConnectionError, OSError):
connection.close() connection.close()
except Exception:
log.exception("Unhandled exception in window_size_changed callback for %r", connection)
async def _run_client_session(self, network_reader, network_writer): async def _run_client_session(self, network_reader, network_writer):
self._set_socket_options(network_writer) self._set_socket_options(network_writer)

View File

@ -143,7 +143,7 @@ async def test_telnet_server_broadcast_survives_client_disconnect():
await _wait_for_connection_count(server, 2) await _wait_for_connection_count(server, 2)
client1_writer.close() client1_writer.close()
await asyncio.sleep(0.2) await _wait_for_connection_count(server, 1)
upstream_reader.feed_data(b"ok") upstream_reader.feed_data(b"ok")
data2 = await asyncio.wait_for(client2_reader.read(2), timeout=2) data2 = await asyncio.wait_for(client2_reader.read(2), timeout=2)