diff options
Diffstat (limited to 'src/Net/ClientConnection.cpp')
-rw-r--r-- | src/Net/ClientConnection.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Net/ClientConnection.cpp b/src/Net/ClientConnection.cpp index 396c70a..66df2ea 100644 --- a/src/Net/ClientConnection.cpp +++ b/src/Net/ClientConnection.cpp @@ -20,7 +20,7 @@ #include "ClientConnection.h" #include "IPAddress.h" #include <cstring> -#include <errno.h> +#include <cerrno> #include <sys/socket.h> namespace Mad { @@ -59,10 +59,13 @@ void ClientConnection::connect(const IPAddress &address) throw(ConnectionExcepti } void ClientConnection::disconnect() { + if(!connected) + return; + gnutls_bye(session, GNUTLS_SHUT_RDWR); if(sock >= 0) { - shutdown(sock, SHUT_RDWR); /* no more receptions */ + shutdown(sock, SHUT_RDWR); close(sock); sock = -1; } |