From ca1decd0a9ca543b1bfddd71b5818a0983e3bb03 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Sun, 13 Sep 2020 13:54:38 -0700 Subject: [PATCH] Fix new crash when recycling introduced in 3b0dd501f6a active_clients is destroyed in cleanup(), so it must be re-initialized inside the server init/recycle loop. --- src/sbbs3/ftpsrvr.c | 3 ++- src/sbbs3/mailsrvr.c | 3 ++- src/sbbs3/websrvr.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index f67899d860..9e9065a678 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -6049,9 +6049,10 @@ void DLLCALL ftp_server(void* arg) startup->shutdown_now=FALSE; terminate_server=FALSE; protected_uint32_init(&thread_count, 0); - protected_uint32_init(&active_clients, 0); do { + protected_uint32_init(&active_clients, 0); + /* Setup intelligent defaults */ if(startup->port==0) startup->port=IPPORT_FTP; if(startup->qwk_timeout==0) startup->qwk_timeout=FTP_DEFAULT_QWK_TIMEOUT; /* seconds */ diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 44607a9e5c..24fd1bd8bd 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -6012,9 +6012,10 @@ void DLLCALL mail_server(void* arg) SetThreadName("sbbs/mailServer"); protected_uint32_init(&thread_count, 0); - protected_uint32_init(&active_clients, 0); do { + protected_uint32_init(&active_clients, 0); + /* Setup intelligent defaults */ if(startup->relay_port==0) startup->relay_port=IPPORT_SMTP; if(startup->submission_port==0) startup->submission_port=IPPORT_SUBMISSION; diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index bfabe167b4..0a7223450d 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -6954,9 +6954,10 @@ void DLLCALL web_server(void* arg) startup->shutdown_now=FALSE; terminate_server=FALSE; protected_uint32_init(&thread_count, 0); - protected_uint32_init(&active_clients,0); do { + protected_uint32_init(&active_clients,0); + /* Setup intelligent defaults */ if(startup->port==0) startup->port=IPPORT_HTTP; if(startup->root_dir[0]==0) SAFECOPY(startup->root_dir,WEB_DEFAULT_ROOT_DIR); -- GitLab