From 5012efb1eb3d2d20289a01c1d25f8b42e573d047 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Thu, 11 Nov 2021 18:37:38 -0800
Subject: [PATCH] Log an error and exit immediately when a local linked-node is
 configured

When a linked-node (in echocfg->Linked Nodes) contains one of the local system's FTN addresses, display/log an error and exit immediately, e.g.:
Configuration ERROR: Linked node #20 is your own address: 1:103/705

I'd perform this check in EchoCfg, but:
1. echocfg doesn't read the BBS's configuration files (where the local FTN addresses are configured), and
2. some sysops just directly edit their sbbsecho.ini file
---
 src/sbbs3/sbbsecho.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index 772c51c4a8..69cff0185a 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -6242,6 +6242,14 @@ int main(int argc, char **argv)
 		return -1;
 	}
 
+	for(uint u = 0; u < cfg.nodecfgs; u++) {
+		if(sysfaddr_is_valid(find_sysfaddr(cfg.nodecfg[u].addr, true))) {
+			lprintf(LOG_ERR, "Configuration ERROR: Linked node #%u is your own address: %s"
+				,u + 1, faddrtoa(&cfg.nodecfg[u].addr));
+			bail(1);
+		}
+	}
+
 	char* tmpdir = FULLPATH(NULL, cfg.temp_dir, sizeof(cfg.temp_dir)-1);
 	if(tmpdir != NULL) {
 		SAFECOPY(cfg.temp_dir, tmpdir);
-- 
GitLab