return;
resolve_tag = 0;
- signal_socket_error.emit(err);
-
delete request;
request = 0;
+
+ if(signal_socket_error.empty())
+ throw err;
+ signal_socket_error.emit(err);
}
void Client::connect_finished(const exception *err)
{
if(err)
{
- signal_socket_error.emit(*err);
-
delete request;
request = 0;
+
+ if(signal_socket_error.empty())
+ throw *err;
+ signal_socket_error.emit(*err);
}
else
- sock->write(request->str());
+ {
+ try
+ {
+ sock->write(request->str());
+ }
+ catch(const exception &e)
+ {
+ if(signal_socket_error.empty())
+ throw;
+ signal_socket_error.emit(e);
+ return;
+ }
+ }
}
void Client::data_available()
}
catch(const exception &e)
{
+ if(signal_socket_error.empty())
+ throw;
signal_socket_error.emit(e);
return;
}