From b8c1702cf7388137ea4d9789a4fee4e3aa2c3292 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 28 Sep 2005 07:56:19 +0000
Subject: [PATCH] Allow log level to be configurable in services.ini either
 globally (in the root section) or per service, using the LogLevel key
 (default value: LOG_DEBUG). This commit requires an xpdev/ini_file.* update.

---
 src/sbbs3/services.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index 7baad682b5..5ed7b4328b 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -96,6 +96,7 @@ typedef struct {
 	DWORD	max_clients;
 	DWORD	options;
 	int		listen_backlog;
+	int		log_level;
 	DWORD	stack_size;
 	js_startup_t	js;
 	js_server_props_t js_server_props;
@@ -392,7 +393,7 @@ js_log(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 
 	if(service==NULL)
 		lprintf(level,"%04d %s",client->socket,str);
-	else
+	else if(level <= client->service->log_level)
 		lprintf(level,"%04d %s %s",client->socket,client->service->protocol,str);
 
 	*rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
@@ -1434,6 +1435,7 @@ static service_t* read_services_ini(service_t* service, DWORD* services)
 	char**		sec_list;
 	service_t*	np;
 	service_t	serv;
+	int			log_level;
 
 	iniFileName(services_ini,sizeof(services_ini),scfg.ctrl_dir,"services.ini");
 
@@ -1443,6 +1445,7 @@ static service_t* read_services_ini(service_t* service, DWORD* services)
 	}
 
 	lprintf(LOG_INFO,"Reading %s",services_ini);
+	log_level = iniReadLogLevel(fp,ROOT_SECTION,"LogLevel",LOG_DEBUG);
 	sec_list = iniReadSectionList(fp,"");
     for(i=0; sec_list!=NULL && sec_list[i]!=NULL; i++) {
 		memset(&serv,0,sizeof(service_t));
@@ -1454,6 +1457,7 @@ static service_t* read_services_ini(service_t* service, DWORD* services)
 		serv.listen_backlog=iniReadInteger(fp,sec_list[i],"ListenBacklog",DEFAULT_LISTEN_BACKLOG);
 		serv.stack_size=iniReadInteger(fp,sec_list[i],"StackSize",0);
 		serv.options=iniReadBitField(fp,sec_list[i],"Options",service_options,0);
+		serv.log_level = iniReadLogLevel(fp,sec_list[i],"LogLevel",log_level);
 		SAFECOPY(serv.cmd,iniReadString(fp,sec_list[i],"Command","",cmd));
 
 		/* JavaScript operating parameters */
-- 
GitLab