From 47bb66910e003a6b878d76fe1edf4af2eb89a62c Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Mon, 15 Nov 2021 21:11:35 -0800
Subject: [PATCH] Add support for "name@address" syntax in twitlist.cfg

where "address" is a QWKnet ID or path or a FidoNet originating address. Wildcards can be used (e.g. "*@VERT").

For Trikester.
---
 src/sbbs3/qwk.cpp    | 12 ++++++++++++
 src/sbbs3/sbbsecho.c |  8 ++++++++
 2 files changed, 20 insertions(+)

diff --git a/src/sbbs3/qwk.cpp b/src/sbbs3/qwk.cpp
index 5e4770d0f9..a70eaeb844 100644
--- a/src/sbbs3/qwk.cpp
+++ b/src/sbbs3/qwk.cpp
@@ -1204,5 +1204,17 @@ bool sbbs_t::qwk_msg_filtered(smbmsg_t* msg, str_list_t ip_can, str_list_t host_
 			,msg->to);
 		return true;
 	}
+
+	if(msg->from_net.type != NET_NONE) {
+		char fidoaddr[64];
+		char str[128];
+		SAFEPRINTF2(str, "%s@%s", msg->from, smb_netaddrstr(&msg->from_net, fidoaddr));
+		if(findstr_in_list(str, twit_list)) {
+			lprintf(LOG_NOTICE,"!Filtering QWK message from '%s' to '%s'"
+				,str
+				,msg->to);
+			return true;
+		}
+	}
 	return false;
 }
diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index 12c32710c0..9856bc8eb3 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -3514,6 +3514,14 @@ int fmsgtosmsg(char* fbuf, fmsghdr_t* hdr, uint usernumber, uint subnum)
 		return IMPORT_FILTERED_EMPTY;
 	}
 
+	SAFEPRINTF2(str, "%s@%s", hdr->from, smb_faddrtoa(&origaddr, NULL));
+	if(findstr_in_list(str, twit_list)) {
+		lprintf(LOG_INFO,"Filtering message from %s to %s", str, hdr->to);
+		smb_freemsgmem(&msg);
+		free(sbody);
+		return IMPORT_FILTERED_TWIT;
+	}
+
 	if(!origaddr.zone && subnum==INVALID_SUB)
 		net=NET_NONE;						/* Message from SBBSecho */
 	else
-- 
GitLab