summaryrefslogtreecommitdiffstats
path: root/src/Net/ClientConnection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Net/ClientConnection.cpp')
-rw-r--r--src/Net/ClientConnection.cpp7
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;
}