X-Git-Url: http://git.tdb.fi/?p=libs%2Fnet.git;a=blobdiff_plain;f=source%2Fnet%2Fcommunicator.cpp;h=618e8b45e9e295f01fc4948ef19daecd56f51242;hp=c9b277d3748de137381b0df792d5230b0e8e0c62;hb=a0b7f9bcf0654a7a3f24bac95746ac587b71986b;hpb=0165ed331051ae7fc64dfe85dd7ab8f5b11ba919 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); } }