From 3e3ca63912cb1babcb738c4cac30c986e3f9302b Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 23 Dec 2004 22:28:03 +0000
Subject: [PATCH] Support ctrl/<host>.ini in addition to ctrl/<host.domain>.ini
 in sbbs_get_ini_fname().

---
 src/sbbs3/sbbs_ini.c | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/src/sbbs3/sbbs_ini.c b/src/sbbs3/sbbs_ini.c
index 8fe84caa16..367553efa6 100644
--- a/src/sbbs3/sbbs_ini.c
+++ b/src/sbbs3/sbbs_ini.c
@@ -62,10 +62,13 @@ static const char*	strBindRetryDelay="BindRetryDelay";
 
 void sbbs_get_ini_fname(char* ini_file, char* ctrl_dir, char* pHostName)
 {
-    char host_name[128];
-    char path[MAX_PATH+1];
+    char	host_name[128];
+    char	path[MAX_PATH+1];
+	char*	p;
 
-    if(pHostName==NULL) {
+    if(pHostName!=NULL)
+		SAFECOPY(host_name,pHostName);
+	else {
 #if defined(_WINSOCKAPI_)
         WSADATA WSAData;
         WSAStartup(MAKEWORD(1,1), &WSAData); /* req'd for gethostname */
@@ -74,17 +77,24 @@ void sbbs_get_ini_fname(char* ini_file, char* ctrl_dir, char* pHostName)
 #if defined(_WINSOCKAPI_)
         WSACleanup();
 #endif
-        pHostName=host_name;
     }
 	SAFECOPY(path,ctrl_dir);
 	backslash(path);
-	sprintf(ini_file,"%s%s.ini",path,pHostName);
+	sprintf(ini_file,"%s%s.ini",path,host_name);
+	if(fexistcase(ini_file))
+		return;
+	if((p=strchr(host_name,'.'))!=NULL) {
+		*p=0;
+		sprintf(ini_file,"%s%s.ini",path,host_name);
+		if(fexistcase(ini_file))
+			return;
+	}
 #if defined(__unix__) && defined(PREFIX)
-	if(!fexistcase(ini_file))
-		sprintf(ini_file,PREFIX"/etc/sbbs.ini");
+	sprintf(ini_file,PREFIX"/etc/sbbs.ini");
+	if(fexistcase(ini_file))
+		return;
 #endif
-	if(!fexistcase(ini_file))
-		sprintf(ini_file,"%ssbbs.ini",path);
+	sprintf(ini_file,"%ssbbs.ini",path);
 }
 
 static void read_ini_globals(FILE* fp, global_startup_t* global)
-- 
GitLab