From 8d495ba0e44e85b24f4c6ec2f2b9bde8614fe8de Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 30 Jan 2009 22:59:10 +0000
Subject: [PATCH] Reduced the severity of some common log messages from Warning
 to Notice. Defined 'recipient_address' convenience variable for JS mail procs
 and added %T (recipient address) command-line specifier for mail proc
 command-lines.

---
 src/sbbs3/mailsrvr.c | 48 +++++++++++++++++++++++++++-----------------
 1 file changed, 30 insertions(+), 18 deletions(-)

diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index f0b954f091..85183e29b1 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -821,10 +821,10 @@ static void pop3_thread(void* arg)
 		user.number=matchuser(&scfg,username,FALSE /*sysop_alias*/);
 		if(!user.number) {
 			if(scfg.sys_misc&SM_ECHO_PW)
-				lprintf(LOG_WARNING,"%04d !POP3 UNKNOWN USER: %s (password: %s)"
+				lprintf(LOG_NOTICE,"%04d !POP3 UNKNOWN USER: %s (password: %s)"
 					,socket, username, password);
 			else
-				lprintf(LOG_WARNING,"%04d !POP3 UNKNOWN USER: %s"
+				lprintf(LOG_NOTICE,"%04d !POP3 UNKNOWN USER: %s"
 					,socket, username);
 			sockprintf(socket,pop_err);
 			break;
@@ -836,7 +836,7 @@ static void pop3_thread(void* arg)
 			break;
 		}
 		if(user.misc&(DELETED|INACTIVE)) {
-			lprintf(LOG_WARNING,"%04d !POP3 DELETED or INACTIVE user #%u (%s)"
+			lprintf(LOG_NOTICE,"%04d !POP3 DELETED or INACTIVE user #%u (%s)"
 				,socket, user.number, username);
 			sockprintf(socket, pop_err);
 			break;
@@ -847,7 +847,7 @@ static void pop3_thread(void* arg)
 			MD5_calc(digest,challenge,strlen(challenge));
 			MD5_hex(str,digest);
 			if(strcmp(str,response)) {
-				lprintf(LOG_WARNING,"%04d !POP3 %s FAILED APOP authentication"
+				lprintf(LOG_NOTICE,"%04d !POP3 %s FAILED APOP authentication"
 					,socket,username);
 #if 0
 				lprintf(LOG_DEBUG,"%04d !POP3 digest data: %s",socket,challenge);
@@ -859,10 +859,10 @@ static void pop3_thread(void* arg)
 			}
 		} else if(stricmp(password,user.pass)) {
 			if(scfg.sys_misc&SM_ECHO_PW)
-				lprintf(LOG_WARNING,"%04d !POP3 FAILED Password attempt for user %s: '%s' expected '%s'"
+				lprintf(LOG_NOTICE,"%04d !POP3 FAILED Password attempt for user %s: '%s' expected '%s'"
 					,socket, username, password, user.pass);
 			else
-				lprintf(LOG_WARNING,"%04d !POP3 FAILED Password attempt for user %s"
+				lprintf(LOG_NOTICE,"%04d !POP3 FAILED Password attempt for user %s"
 					,socket, username);
 			sockprintf(socket, pop_err);
 			break;
@@ -991,7 +991,7 @@ static void pop3_thread(void* arg)
 				if(isdigit(*p)) {
 					msgnum=atol(p);
 					if(msgnum<1 || msgnum>msgs) {
-						lprintf(LOG_WARNING,"%04d !POP3 INVALID message #%ld"
+						lprintf(LOG_NOTICE,"%04d !POP3 INVALID message #%ld"
 							,socket, msgnum);
 						sockprintf(socket,"-ERR no such message");
 						continue;
@@ -1004,7 +1004,7 @@ static void pop3_thread(void* arg)
 						break;
 					}
 					if(msg.idx.attr&MSG_DELETE) {
-						lprintf(LOG_WARNING,"%04d !POP3 ATTEMPT to list DELETED message"
+						lprintf(LOG_NOTICE,"%04d !POP3 ATTEMPT to list DELETED message"
 							,socket);
 						sockprintf(socket,"-ERR message deleted");
 						continue;
@@ -1082,7 +1082,7 @@ static void pop3_thread(void* arg)
 					lines=atol(p);
 				}
 				if(msgnum<1 || msgnum>msgs) {
-					lprintf(LOG_WARNING,"%04d !POP3 %s ATTEMPTED to retrieve an INVALID message #%ld"
+					lprintf(LOG_NOTICE,"%04d !POP3 %s ATTEMPTED to retrieve an INVALID message #%ld"
 						,socket, user.alias, msgnum);
 					sockprintf(socket,"-ERR no such message");
 					continue;
@@ -1099,7 +1099,7 @@ static void pop3_thread(void* arg)
 					continue;
 				}
 				if(msg.idx.attr&MSG_DELETE) {
-					lprintf(LOG_WARNING,"%04d !POP3 ATTEMPT to retrieve DELETED message"
+					lprintf(LOG_NOTICE,"%04d !POP3 ATTEMPT to retrieve DELETED message"
 						,socket);
 					sockprintf(socket,"-ERR message deleted");
 					continue;
@@ -1175,7 +1175,7 @@ static void pop3_thread(void* arg)
 				msgnum=atol(p);
 
 				if(msgnum<1 || msgnum>msgs) {
-					lprintf(LOG_WARNING,"%04d !POP3 %s ATTEMPTED to delete an INVALID message #%ld"
+					lprintf(LOG_NOTICE,"%04d !POP3 %s ATTEMPTED to delete an INVALID message #%ld"
 						,socket, user.alias, msgnum);
 					sockprintf(socket,"-ERR no such message");
 					continue;
@@ -1231,7 +1231,7 @@ static void pop3_thread(void* arg)
 					lprintf(LOG_INFO,"%04d POP3 message deleted", socket);
 				continue;
 			}
-			lprintf(LOG_WARNING,"%04d !POP3 UNSUPPORTED COMMAND from %s: '%s'"
+			lprintf(LOG_NOTICE,"%04d !POP3 UNSUPPORTED COMMAND from %s: '%s'"
 				,socket, user.alias, buf);
 			sockprintf(socket,"-ERR UNSUPPORTED COMMAND: %s",buf);
 		}
@@ -1423,6 +1423,7 @@ static void signal_smtp_sem(void)
 static char* mailcmdstr(char* instr, char* msgpath, char* newpath, char* logpath
 						,char* lstpath, char* errpath
 						,char* host, char* ip, uint usernum
+						,char* rcpt_addr
 						,char* sender, char* sender_addr, char* reverse_path, char* cmd)
 {
 	char	str[1024];
@@ -1477,6 +1478,9 @@ static char* mailcmdstr(char* instr, char* msgpath, char* newpath, char* logpath
 				case 'S':	/* sender name */
 					strcat(cmd,sender);
 					break;
+				case 'T':	/* recipient */
+					strcat(cmd,rcpt_addr);
+					break;
 				case 'A':	/* sender address */
 					strcat(cmd,sender_addr);
 					break;
@@ -1622,6 +1626,7 @@ static BOOL
 js_mailproc(SOCKET sock, client_t* client, user_t* user, struct mailproc* mailproc
 			,char* cmdline
 			,char* msgtxt_fname, char* newtxt_fname, char* logtxt_fname
+			,char* rcpt_addr
 			,char* rcptlst_fname, char* proc_err_fname
 			,char* sender, char* sender_addr, char* reverse_path, char* hello_name
 			,int32* result
@@ -1715,6 +1720,10 @@ js_mailproc(SOCKET sock, client_t* client, user_t* user, struct mailproc* mailpr
 				,STRING_TO_JSVAL(JS_NewStringCopyZ(*js_cx,logtxt_fname))
 				,NULL,NULL,JSPROP_ENUMERATE|JSPROP_READONLY);
 
+			JS_DefineProperty(*js_cx, *js_glob, "recipient_address"
+				,STRING_TO_JSVAL(JS_NewStringCopyZ(*js_cx,rcpt_addr))
+				,NULL,NULL,JSPROP_ENUMERATE|JSPROP_READONLY);
+
 			JS_DefineProperty(*js_cx, *js_glob, "recipient_list_filename"
 				,STRING_TO_JSVAL(JS_NewStringCopyZ(*js_cx,rcptlst_fname))
 				,NULL,NULL,JSPROP_ENUMERATE|JSPROP_READONLY);
@@ -2441,6 +2450,7 @@ static void smtp_thread(void* arg)
 							,msgtxt_fname, newtxt_fname, logtxt_fname
 							,rcptlst_fname, proc_err_fname
 							,host_name, host_ip, relay_user.number
+							,rctp_addr
 							,sender, sender_addr, reverse_path, str);
 						lprintf(LOG_INFO,"%04d SMTP Executing external mail processor: %s"
 							,socket, mailproc_list[i].name);
@@ -2462,6 +2472,7 @@ static void smtp_thread(void* arg)
 								,&mailproc_list[i]
 								,str /* cmdline */
 								,msgtxt_fname, newtxt_fname, logtxt_fname
+								,rcpt_addr
 								,rcptlst_fname, proc_err_fname
 								,sender, sender_addr, reverse_path, hello_name, &js_result
 								,&js_runtime, &js_cx, &js_glob
@@ -3236,7 +3247,7 @@ static void smtp_thread(void* arg)
 			}
 
 			if(*p==0) {
-				lprintf(LOG_WARNING,"%04d !SMTP NO RECIPIENT SPECIFIED"
+				lprintf(LOG_NOTICE,"%04d !SMTP NO RECIPIENT SPECIFIED"
 					,socket);
 				sockprintf(socket, "500 No recipient specified");
 				continue;
@@ -3247,7 +3258,7 @@ static void smtp_thread(void* arg)
 
 			/* Check recipient counter */
 			if(rcpt_count>=startup->max_recipients) {
-				lprintf(LOG_WARNING,"%04d !SMTP MAXIMUM RECIPIENTS (%d) REACHED"
+				lprintf(LOG_NOTICE,"%04d !SMTP MAXIMUM RECIPIENTS (%d) REACHED"
 					,socket, startup->max_recipients);
 				sprintf(tmp,"Maximum recipient count (%d)",startup->max_recipients);
 				spamlog(&scfg, "SMTP", "REFUSED", tmp
@@ -3292,7 +3303,8 @@ static void smtp_thread(void* arg)
 			/* Check for full address aliases */
 			p=alias(&scfg,p,alias_buf);
 			if(p==alias_buf) 
-				lprintf(LOG_INFO,"%04d SMTP ADDRESS ALIAS: %s",socket,p);
+				lprintf(LOG_INFO,"%04d SMTP ADDRESS ALIAS: %s (for %s)"
+					,socket,p,rcpt_addr);
 
 			tp=strrchr(p,'@');
 			if(cmd==SMTP_CMD_MAIL && tp!=NULL) {
@@ -3375,7 +3387,8 @@ static void smtp_thread(void* arg)
 
 			p=alias(&scfg,p,name_alias_buf);
 			if(p==name_alias_buf) 
-				lprintf(LOG_INFO,"%04d SMTP NAME ALIAS: %s",socket,p);
+				lprintf(LOG_INFO,"%04d SMTP NAME ALIAS: %s (for %s)"
+					,socket,p,rcpt_addr);
 		
 			if(!strnicmp(p,"sub:",4)) {		/* Post on a sub-board */
 				p+=4;
@@ -3383,7 +3396,7 @@ static void smtp_thread(void* arg)
 					if(!stricmp(p,scfg.sub[i]->code))
 						break;
 				if(i>=scfg.total_subs) {
-					lprintf(LOG_WARNING,"%04d !SMTP UNKNOWN SUB-BOARD: %s", socket, p);
+					lprintf(LOG_NOTICE,"%04d !SMTP UNKNOWN SUB-BOARD: %s", socket, p);
 					sockprintf(socket, "550 Unknown sub-board: %s", p);
 					continue;
 				}
@@ -3532,7 +3545,6 @@ static void smtp_thread(void* arg)
 			fprintf(rcptlst,"%s=%s\n",smb_hfieldtype(RECIPIENT),rcpt_addr);
 			fprintf(rcptlst,"%s=%u\n",smb_hfieldtype(RECIPIENTEXT),user.number);
 
-
 			/* Forward to Internet */
 			tp=strrchr(user.netmail,'@');
 			if(!telegram
-- 
GitLab