X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/6bffb655ac989fe4f115763270f84175bf24e4bb..325f784cbf310091cb5749842a52cf7e1ad64b1b:/Server/src/connection.cpp diff --git a/Server/src/connection.cpp b/Server/src/connection.cpp index 1dc6b6d..75915c9 100644 --- a/Server/src/connection.cpp +++ b/Server/src/connection.cpp @@ -39,42 +39,61 @@ namespace Server { Connection::~Connection(void) { #ifdef DEBUG - cerr << __FILE__ << ": destructor." << endl; + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": destructor." << endl; #endif // DEBUG } Connection::Connection(const sockbuf::sockdesc& sd): socket(sd) { #ifdef DEBUG - cerr << __FILE__ << ": sd = " << sd.sock << endl; + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": sd = " << sd.sock; +#endif // DEBUG + host = socket->peerhost(); + port = socket->peerport(); +#ifdef DEBUG + cerr << " | host = " << host << " | port = " << port << endl; +#endif // DEBUG +} + +Connection::Connection(const sockbuf::type& type, const std::string& host, + const Port& port): socket(type), host(host), port(port) { +#ifdef DEBUG + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": type = " << type << " | host = " << host + << " | port = " << port << endl; #endif // DEBUG } -Connection::Connection(sockbuf::type type): - socket(type) { +Connection::Connection(const std::string& host, const Port& port): + host(host), port(port) { #ifdef DEBUG - cerr << __FILE__ << ": type = " << type << endl; + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": host = " << host << " | port = " << port << endl; #endif // DEBUG } void Connection::finish(bool attach) { +#ifdef DEBUG + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": finish(attach = " << attach << ")." << endl; +#endif // DEBUG //socket_mutex.lock(); - socket->shutdown(sockbuf::shut_readwrite); + try { + socket->shutdown(sockbuf::shut_readwrite); + } catch (const sockerr& e) { + error(e.serrno(), e.errstr()); + } //socket_mutex.unlock(); Runnable::finish(attach); } -string Connection::get_peerhost(void) { - //socket_mutex.lock(); - string host = socket->peerhost(); - //socket_mutex.unlock(); +const string& Connection::get_host(void) const { return host; } -unsigned Connection::get_peerport(void) { - //socket_mutex.lock(); - unsigned port = socket->peerport(); - //socket_mutex.unlock(); +const Connection::Port& Connection::get_port(void) const { return port; }