summaryrefslogtreecommitdiff
path: root/Ivy/BufferedSocket.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Ivy/BufferedSocket.cxx')
-rw-r--r--Ivy/BufferedSocket.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/Ivy/BufferedSocket.cxx b/Ivy/BufferedSocket.cxx
index fcf90c6..b91386f 100644
--- a/Ivy/BufferedSocket.cxx
+++ b/Ivy/BufferedSocket.cxx
@@ -24,6 +24,7 @@ CBufferedSocket::CBufferedSocket()
CBufferedSocket::~CBufferedSocket()
{
free( buffer );
+ DeleteCriticalSection( &m_CritSection );
}
void CBufferedSocket::Accept(CBufferedSocket& rConnectedSocket, SOCKADDR* lpSockAddr , int* lpSockAddrLen )
{
@@ -74,7 +75,7 @@ void CBufferedSocket::OnReceive(int nErrorCode)
current_ptr += nb;
ptr = buffer;
- while ((ptr_sep = (char*)memchr (ptr, separator, current_ptr - ptr )))
+ while ((ptr_sep = (char*)memchr (ptr, separator, current_ptr - ptr )) && m_hSocket != INVALID_SOCKET)
{
*ptr_sep = '\0';
//TRACE("message %s\n", ptr );