From c0d3f5b8b5ba68377d7e12e91ed6a5a930899257 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 16 Nov 2004 06:23:55 +0000
Subject: [PATCH] close_socket() always calls open/close socket callback,
 regardless of result from closesocket() call (socket may have been closed by
 another local thread).

---
 src/sbbs3/ftpsrvr.c  | 2 +-
 src/sbbs3/mailsrvr.c | 2 +-
 src/sbbs3/main.cpp   | 2 +-
 src/sbbs3/services.c | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index f67dcc372e..1bfaf5cfe1 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -254,7 +254,7 @@ static int ftp_close_socket(SOCKET* sock, int line)
 	shutdown(*sock,SHUT_RDWR);	/* required on Unix */
 
 	result=closesocket(*sock);
-	if(result==0 && startup!=NULL && startup->socket_open!=NULL) 
+	if(startup!=NULL && startup->socket_open!=NULL) 
 		startup->socket_open(startup->cbdata,FALSE);
 
 	sockets--;
diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 2fde1d7a6b..031ef9cf77 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -224,7 +224,7 @@ int mail_close_socket(SOCKET sock)
 
 	shutdown(sock,SHUT_RDWR);	/* required on Unix */
 	result=closesocket(sock);
-	if(/* result==0 && */ startup!=NULL && startup->socket_open!=NULL)
+	if(startup!=NULL && startup->socket_open!=NULL)
 		startup->socket_open(startup->cbdata,FALSE);
 	sockets--;
 	if(result!=0) {
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index bfb5d651b5..841a647bd3 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -208,7 +208,7 @@ int close_socket(SOCKET sock)
 
 	shutdown(sock,SHUT_RDWR);	/* required on Unix */
 	result=closesocket(sock);
-	if(result==0 && startup!=NULL && startup->socket_open!=NULL) 
+	if(startup!=NULL && startup->socket_open!=NULL)
 		startup->socket_open(startup->cbdata,FALSE);
 	if(result!=0 && ERROR_VALUE!=ENOTSOCK)
 		lprintf(LOG_ERR,"!ERROR %d closing socket %d",ERROR_VALUE,sock);
diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index 485f9571f3..0e71d102db 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -242,7 +242,7 @@ static int close_socket(SOCKET sock)
 
 	shutdown(sock,SHUT_RDWR);	/* required on Unix */
 	result=closesocket(sock);
-	if(result==0 && startup!=NULL && startup->socket_open!=NULL) 
+	if(startup!=NULL && startup->socket_open!=NULL) 
 		startup->socket_open(startup->cbdata,FALSE);
 	sockets--;
 	if(result!=0)
-- 
GitLab