X-Git-Url: http://git.tdb.fi/?p=libs%2Fnet.git;a=blobdiff_plain;f=source%2Fnet%2Fcommunicator.cpp;h=618e8b45e9e295f01fc4948ef19daecd56f51242;hp=c9b277d3748de137381b0df792d5230b0e8e0c62;hb=fa637ffb18421300e401a782d28dd729a3960ac4;hpb=50e9f9ea7f7385a2c5931fca2b8fb1103078e67c diff --git a/source/net/communicator.cpp b/source/net/communicator.cpp index c9b277d..618e8b4 100644 --- a/source/net/communicator.cpp +++ b/source/net/communicator.cpp @@ -1,6 +1,8 @@ #include #include "communicator.h" +using namespace std; + namespace { using namespace Msp::Net; @@ -85,9 +87,10 @@ void Communicator::data_available() if(!good) return; - in_end += socket.read(in_end, in_buf+buf_size-in_end); try { + in_end += socket.read(in_end, in_buf+buf_size-in_end); + bool more = true; while(more) { @@ -114,10 +117,12 @@ void Communicator::data_available() } } } - catch(...) + catch(const exception &e) { good = false; - throw; + if(signal_error.empty()) + throw; + signal_error.emit(e); } }