+ try {
+ } catch (const sockerr& e) {
+ // TODO Poner una señal de error específica?
+ signal_error().emit(e.serrno(), e.errstr());
+ return;
+ }
+ // TODO sacar signal_connected?
+ connected();
+ // TODO Temporal: el receiver empieza a escuchar.
+ receiver->run();
+ while (!stop()) {
+ HTTPResponse response;
+ try {
+ //Glib::Mutex::Lock lock(socket_mutex);
+ socket >> response;
+ // Si se cerró el socket.
+ } catch (const ios::failure& e) {
+ // TODO poner buenos codigos de error.
+ signal_error().emit(1000000, "Se desconectó.");
+ return;
+ } catch (const sockerr& e) {
+ signal_error().emit(e.serrno(), e.errstr());
+ return;
+ // Si hay un error al parsear la respuesta.
+ } catch (const HTTPResponse::Error& e) {