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