From 43b734260a10ccc5429d0ead16fac9ad0452a954 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sun, 7 Aug 2011 11:45:44 +0300 Subject: [PATCH] Don't let exceptions from the socket fall out of Client::data_available --- source/client.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/client.cpp b/source/client.cpp index 6801ad2..7e4ffb3 100644 --- a/source/client.cpp +++ b/source/client.cpp @@ -122,7 +122,19 @@ void Client::connect_finished(int err) void Client::data_available() { char rbuf[4096]; - unsigned len = sock->read(rbuf, sizeof(rbuf)); + unsigned len; + try + { + len = sock->read(rbuf, sizeof(rbuf)); + } + catch(const SystemError &e) + { + signal_socket_error.emit(e.get_error_code()); + return; + } + + if(!len) + return; in_buf.append(rbuf, len); if(!response) -- 2.43.0