From 4266323852c3fa7ad1a2a01c593b5654066e3d0f Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 2 Dec 2000 22:47:41 +0000
Subject: [PATCH] Added option to keep temp files (for debugging).

---
 src/sbbs3/ftpsrvr.c | 15 +++++++++++----
 src/sbbs3/ftpsrvr.h |  1 +
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index aad834e4b8..ae1a8af9bf 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -422,7 +422,7 @@ int sockreadline(SOCKET socket, char* buf, int len, time_t* lastactive)
 	int		i,rd=0;
 	
 	while(rd<len-1) {
-		i= recv(socket, &ch, 1, 0);
+		i=recv(socket, &ch, 1, 0);
 		if(server_socket==INVALID_SOCKET) {
 			sockprintf(socket,"421 Server downed, aborting.");
 			lprintf("%04d Server downed, aborting.",socket);
@@ -1779,7 +1779,9 @@ static void ctrl_thread(void* arg)
 				globfree(&g);
 				fclose(fp);
 				filexfer(&data_addr,sock,pasv_sock,&data_sock,fname,0L
-					,&transfer_inprogress,&transfer_aborted,TRUE,TRUE
+					,&transfer_inprogress,&transfer_aborted
+					,startup->options&FTP_OPT_KEEP_TEMP_FILES ? FALSE : TRUE
+					,TRUE
 					,&lastactive,&user,-1,FALSE,FALSE,FALSE,NULL);
 				continue;
 			} /* Local LIST/NLST */
@@ -2249,7 +2251,9 @@ static void ctrl_thread(void* arg)
 
 			fclose(fp);
 			filexfer(&data_addr,sock,pasv_sock,&data_sock,fname,0L
-				,&transfer_inprogress,&transfer_aborted,TRUE,TRUE
+				,&transfer_inprogress,&transfer_aborted
+				,startup->options&FTP_OPT_KEEP_TEMP_FILES ? FALSE : TRUE
+				,TRUE
 				,&lastactive,&user,dir,FALSE,FALSE,FALSE,NULL);
 			continue;
 		}
@@ -2384,7 +2388,10 @@ static void ctrl_thread(void* arg)
 				success=TRUE;
 				credits=FALSE;
 				tmpfile=TRUE;
-				delfile=TRUE;
+				if(startup->options&FTP_OPT_KEEP_TEMP_FILES)
+					delfile=FALSE;
+				else
+					delfile=TRUE;
 				fprintf(fp,"%-*s File/Folder Descriptions\r\n"
 					,INDEX_FNAME_LEN,startup->index_file_name);
 				if(lib<0) {
diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h
index 590b86dda4..9c1a4870b8 100644
--- a/src/sbbs3/ftpsrvr.h
+++ b/src/sbbs3/ftpsrvr.h
@@ -92,6 +92,7 @@ typedef struct {
 #define FTP_OPT_ALLOW_QWK			(1<<4)
 #define FTP_OPT_NO_LOCAL_FSYS		(1<<5)
 #define FTP_OPT_DIR_FILES			(1<<6)	/* Allow access to files in dir but not in database */
+#define FTP_OPT_KEEP_TEMP_FILES		(1<<7)	/* Don't delete temp files (for debugging) */
 #define FTP_OPT_NO_HOST_LOOKUP		(1<<11)
 #define FTP_OPT_LOCAL_TIMEZONE		(1<<30)	/* Don't force UCT/GMT */
 #define FTP_OPT_MUTE				(1<<31)
-- 
GitLab