From 55e1b746a199779391da14c7a69c7232c42a99e2 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Sat, 12 Sep 2020 23:55:29 -0700
Subject: [PATCH] Use md() to make the temp directory so get consistent
 error-reporting

---
 src/sbbs3/ftpsrvr.c  | 3 +--
 src/sbbs3/mailsrvr.c | 6 ++----
 src/sbbs3/services.c | 6 ++----
 src/sbbs3/websrvr.c  | 6 ++----
 4 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index b2dca8c89d..c498457d5e 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -6124,8 +6124,7 @@ void DLLCALL ftp_server(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 	   	prep_dir(scfg.ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		if(!isdir(scfg.temp_dir) && MKDIR(scfg.temp_dir) != 0) {
-			lprintf(LOG_ERR, "Error %d creating temp directory: %s", errno, scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1,__LINE__);
 			break;
 		}
diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index e7646f7536..ff6ae69c91 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -6084,13 +6084,11 @@ void DLLCALL mail_server(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 	   	prep_dir(scfg.ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		MKDIR(scfg.temp_dir);
-		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
-		if(!isdir(scfg.temp_dir)) {
-			lprintf(LOG_CRIT,"!Invalid temp directory: %s", scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1);
 			return;
 		}
+		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
 
 		/* Parse the mailproc[.host].ini */
 		mailproc_list=NULL;
diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index f7ed012847..c7d2a77a78 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -1837,13 +1837,11 @@ void DLLCALL services_thread(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 	   	prep_dir(scfg.ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		MKDIR(scfg.temp_dir);
-		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
-		if(!isdir(scfg.temp_dir)) {
-			lprintf(LOG_CRIT,"!Invalid temp directory: %s", scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1);
 			return;
 		}
+		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
 
 		if((t=checktime())!=0) {   /* Check binary time */
 			lprintf(LOG_ERR,"!TIME PROBLEM (%ld)",t);
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 53619e75de..d2f7b15525 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -7033,13 +7033,11 @@ void DLLCALL web_server(void* arg)
 		else
 			SAFECOPY(scfg.temp_dir,"../temp");
 		prep_dir(startup->ctrl_dir, scfg.temp_dir, sizeof(scfg.temp_dir));
-		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
-		MKDIR(scfg.temp_dir);
-		if(!isdir(scfg.temp_dir)) {
-			lprintf(LOG_CRIT,"!Invalid temp directory: %s", scfg.temp_dir);
+		if(!md(scfg.temp_dir)) {
 			cleanup(1);
 			return;
 		}
+		lprintf(LOG_DEBUG,"Temporary file directory: %s", scfg.temp_dir);
 		lprintf(LOG_DEBUG,"Root directory: %s", root_dir);
 		lprintf(LOG_DEBUG,"Error directory: %s", error_dir);
 		lprintf(LOG_DEBUG,"CGI directory: %s", cgi_dir);
-- 
GitLab