summaryrefslogtreecommitdiff
path: root/src/network/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/core')
-rw-r--r--src/network/core/tcp.cpp9
-rw-r--r--src/network/core/tcp.h1
-rw-r--r--src/network/core/tcp_content.cpp6
-rw-r--r--src/network/core/tcp_content.h1
4 files changed, 9 insertions, 8 deletions
diff --git a/src/network/core/tcp.cpp b/src/network/core/tcp.cpp
index 9c58af2c0..963257847 100644
--- a/src/network/core/tcp.cpp
+++ b/src/network/core/tcp.cpp
@@ -20,7 +20,14 @@ NetworkTCPSocketHandler::NetworkTCPSocketHandler(SOCKET s) :
NetworkTCPSocketHandler::~NetworkTCPSocketHandler()
{
+ this->CloseConnection();
+
if (this->sock != INVALID_SOCKET) closesocket(this->sock);
+ this->sock = INVALID_SOCKET;
+}
+
+NetworkRecvStatus NetworkTCPSocketHandler::CloseConnection()
+{
this->writable = false;
this->has_quit = true;
@@ -33,7 +40,7 @@ NetworkTCPSocketHandler::~NetworkTCPSocketHandler()
delete this->packet_recv;
this->packet_recv = NULL;
- this->sock = INVALID_SOCKET;
+ return NETWORK_RECV_STATUS_OKAY;
}
/**
diff --git a/src/network/core/tcp.h b/src/network/core/tcp.h
index 962ea45e5..90edba014 100644
--- a/src/network/core/tcp.h
+++ b/src/network/core/tcp.h
@@ -22,6 +22,7 @@ private:
public:
bool writable; ///< Can we write to this socket?
+ virtual NetworkRecvStatus CloseConnection();
void Send_Packet(Packet *packet);
bool Send_Packets();
bool IsPacketQueueEmpty();
diff --git a/src/network/core/tcp_content.cpp b/src/network/core/tcp_content.cpp
index 32054a1e2..7596cced8 100644
--- a/src/network/core/tcp_content.cpp
+++ b/src/network/core/tcp_content.cpp
@@ -50,12 +50,6 @@ bool ContentInfo::IsValid() const
return this->state < ContentInfo::INVALID && this->type >= CONTENT_TYPE_BEGIN && this->type < CONTENT_TYPE_END;
}
-NetworkRecvStatus NetworkContentSocketHandler::CloseConnection()
-{
- this->has_quit = true;
- return NETWORK_RECV_STATUS_OKAY;
-}
-
void NetworkContentSocketHandler::Close()
{
CloseConnection();
diff --git a/src/network/core/tcp_content.h b/src/network/core/tcp_content.h
index 4d304017a..26f5878ad 100644
--- a/src/network/core/tcp_content.h
+++ b/src/network/core/tcp_content.h
@@ -102,7 +102,6 @@ struct ContentInfo {
class NetworkContentSocketHandler : public NetworkTCPSocketHandler {
protected:
struct sockaddr_in client_addr; ///< The address we're connected to.
- NetworkRecvStatus CloseConnection();
virtual void Close();
/**