From f9dd93c6d77be161d6bb761320d94b00ff308371 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 19 Sep 2001 22:11:54 +0000 Subject: [PATCH] Fixed up the "waiting for transfer to complete" section to abort if server is shut-down (dangerous?) and not to disconnect over-and-over. --- src/sbbs3/ftpsrvr.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 34bfbf051c..4ccfee00d0 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -4020,20 +4020,22 @@ static void ctrl_thread(void* arg) if(transfer_inprogress==TRUE) { lprintf("%04d Waiting for transfer to complete...",sock); while(/* data_sock!=INVALID_SOCKET && removed SEP-16-2001 */ - transfer_inprogress==TRUE) { + transfer_inprogress==TRUE && server_socket!=INVALID_SOCKET) { mswait(500); - if(gettimeleft(&scfg,&user,logintime)<1) { - lprintf("%04d Out of time, disconnecting",sock); - sockprintf(sock,"421 Sorry, you've run out of time."); - ftp_close_socket(&data_sock,__LINE__); - transfer_aborted=TRUE; - } - if((time(NULL)-lastactive)>startup->max_inactivity) { - lprintf("%04d Disconnecting due to to inactivity.",sock); - sockprintf(sock,"421 Disconnecting due to inactivity (%u seconds)." - ,startup->max_inactivity); - ftp_close_socket(&data_sock,__LINE__); - transfer_aborted=TRUE; + if(!transfer_aborted) { + if(gettimeleft(&scfg,&user,logintime)<1) { + lprintf("%04d Out of time, disconnecting",sock); + sockprintf(sock,"421 Sorry, you've run out of time."); + ftp_close_socket(&data_sock,__LINE__); + transfer_aborted=TRUE; + } + if((time(NULL)-lastactive)>startup->max_inactivity) { + lprintf("%04d Disconnecting due to to inactivity.",sock); + sockprintf(sock,"421 Disconnecting due to inactivity (%u seconds)." + ,startup->max_inactivity); + ftp_close_socket(&data_sock,__LINE__); + transfer_aborted=TRUE; + } } } lprintf("%04d Done waiting for transfer to complete",sock); -- GitLab