From fe0fb4c2a8adcc196af91e01c83df8190c1e1a5c Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Mon, 8 Apr 2002 21:02:06 +0000
Subject: [PATCH] Unique data/temp sub-directory names to avoid multi-instance
 FTP-QWK pack/unpack conflicts.

---
 src/sbbs3/main.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index eaa4fb410d..7bdf92fdd0 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -1020,6 +1020,7 @@ void event_thread(void* arg)
 
 			memcpy(&sbbs->cfg,&scfg,sizeof(scfg_t));
 
+			sprintf(sbbs->cfg.temp_dir, "temp/%lX", sbbs_random(~0));
 			prep_dir(sbbs->cfg.data_dir, sbbs->cfg.temp_dir);
 
 			// Read TIME.DAB
@@ -1581,8 +1582,10 @@ sbbs_t::sbbs_t(ushort node_num, DWORD addr, char* name, SOCKET sd,
 	if(node_num>0) {
 		strcpy(cfg.node_dir, cfg.node_path[node_num-1]);
 		prep_dir(cfg.node_dir, cfg.temp_dir);
-	} else
+	} else {
+		sprintf(cfg.temp_dir, "temp/%lX", sbbs_random(~0));
     	prep_dir(cfg.data_dir, cfg.temp_dir);
+	}
 
 	terminated = false;
 	event_thread_running = false;
@@ -1998,6 +2001,9 @@ sbbs_t::~sbbs_t()
 
 	lprintf("%s destructor begin", node);
 
+	if(!cfg.node_num)
+		rmdir(cfg.temp_dir);
+
 	if(client_socket_dup!=INVALID_SOCKET)
 		closesocket(client_socket_dup);	/* close duplicate handle */
 
-- 
GitLab