From 0af12ac9ae9738cbc25931b6355a066c5d48a37f Mon Sep 17 00:00:00 2001 From: pk910 Date: Fri, 23 Dec 2011 12:32:30 +0100 Subject: [PATCH] don't try to read from closing (SOCKET_FLAG_QUIT) sockets --- src/ClientSocket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ClientSocket.c b/src/ClientSocket.c index 6b8b4fb..a108941 100644 --- a/src/ClientSocket.c +++ b/src/ClientSocket.c @@ -369,7 +369,7 @@ void socket_loop(int timeout_seconds) { if(ret == 0) return; for (sock = sockets->data; sock; sock = next) { next = sock->next; - if((sock->flags & SOCKET_FLAG_CONNECTED) && FD_ISSET(sock->sock, &fds)) { + if((sock->flags & (SOCKET_FLAG_CONNECTED | SOCKET_FLAG_QUITTED)) == SOCKET_FLAG_CONNECTED && FD_ISSET(sock->sock, &fds)) { if(sock->bufferpos != 0) { if(!(sock->flags & SOCKET_FLAG_HAVE_SSL) || (bytes = ssl_read(sock, buffer, sizeof(buffer))) == -2) { #ifdef WIN32 @@ -412,7 +412,7 @@ void socket_loop(int timeout_seconds) { sock->bufferpos -= used; } } - } else if(!(sock->flags & SOCKET_FLAG_CONNECTED) && (sock->flags & SOCKET_FLAG_RECONNECT)) { + } else if((sock->flags & (SOCKET_FLAG_CONNECTED | SOCKET_FLAG_RECONNECT)) == SOCKET_FLAG_RECONNECT) { if(time(0) - sock->connection_time >= SOCKET_RECONNECT_TIME) { connect_socket(sock); } -- 2.20.1