X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/71586a11d38b52295c9fb1884d4010adf6dd23b0..667418327423ba116d24751926a95a2f1235849c:/Server/src/controlclient.cpp?ds=inline diff --git a/Server/src/controlclient.cpp b/Server/src/controlclient.cpp index b26385c..511def5 100644 --- a/Server/src/controlclient.cpp +++ b/Server/src/controlclient.cpp @@ -43,8 +43,8 @@ ControlClient::~ControlClient(void) { #endif // DEBUG } -ControlClient::ControlClient(string host, int port): - Connection(sockbuf::sock_stream), host(host), port(port) { +ControlClient::ControlClient(const string& host, const Connection::Port& port): + Connection(sockbuf::sock_stream, host, port) { #ifdef DEBUG cerr << __FILE__ << ": host = " << host << " | port = " << port << endl; @@ -55,15 +55,18 @@ void ControlClient::real_run(void) { #ifdef DEBUG cerr << __FILE__ << ": real_run." << endl; #endif // DEBUG - socket->connect(host.c_str(), port); - // TODO - mejorar manejo de errores de conexion. - // volver a poner signal_disconnected()? reciclar signal_error_received() - // y/o llamarla signal_error()? - if (false) { + try { + socket->connect(host.c_str(), port); + } catch (const sockerr& e) { + // Poner una señal de error específica? + error_received(1); finish(); - } else { - connected(); + return; } + host = socket->localhost(); + port = socket->localport(); + // TODO sacar a la mierda? + connected(); while (!stop) { HTTPResponse response; try { @@ -84,7 +87,7 @@ void ControlClient::real_run(void) { } switch (response.status_code) { case HTTPMessage::OK: - ok_received(); + ok_received(response.get_body()); break; default: error_received(response.status_code);