From 45ced2a3b39d30cbb8c909e66e063ceeff05e636 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Fri, 19 Feb 2021 00:08:42 -0800 Subject: [PATCH] Automatically route in-transit mail to points to boss nodes If the destination point node is not a linked node (does not exist in sbbsecho.ini), but the boss node is linked, automatically route to the boss node. The log entries look like this when this happens: "Routing packet (%s) to boss-node %s" "Routing NetMail (%s) to boss-node %s" For poindexter FORTRAN (REALITY) - test results appreciated. Incremented SBBSecho version to 3.13. --- src/sbbs3/sbbsecho.c | 17 +++++++++++++++++ src/sbbs3/sbbsecho.h | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c index f5d085fa85..cd14226b6f 100644 --- a/src/sbbs3/sbbsecho.c +++ b/src/sbbs3/sbbsecho.c @@ -2624,6 +2624,14 @@ bool pack_bundle(const char *tmp_pkt, fidoaddr_t orig, fidoaddr_t dest) dest=nodecfg->route; lprintf(LOG_NOTICE,"Routing packet (%s) to %s",tmp_pkt, smb_faddrtoa(&dest,NULL)); } + if(nodecfg == NULL && dest.point != 0) { + fidoaddr_t boss = dest; + boss.point = 0; + if((nodecfg = findnodecfg(&cfg, boss, /* exact: */true)) != NULL) { + dest = boss; + lprintf(LOG_INFO, "Routing packet (%s) to boss-node %s", tmp_pkt, smb_faddrtoa(&dest, NULL)); + } + } } outbound = get_current_outbound(dest, cfg.use_outboxes); if(outbound == NULL) @@ -5526,6 +5534,15 @@ void pack_netmail(void) lprintf(LOG_INFO, "Routing NetMail (%s) to %s",getfname(path),smb_faddrtoa(&addr,NULL)); nodecfg=findnodecfg(&cfg, addr,0); } + if(nodecfg == NULL && addr.point != 0) { + fidoaddr_t boss = addr; + boss.point = 0; + if((nodecfg = findnodecfg(&cfg, boss, /* exact: */true)) != NULL) { + addr = boss; + lprintf(LOG_INFO, "Routing NetMail (%s) to boss-node %s" + ,getfname(path), smb_faddrtoa(&addr, NULL)); + } + } } if(!bso_lock_node(addr)) continue; diff --git a/src/sbbs3/sbbsecho.h b/src/sbbs3/sbbsecho.h index dfae5fd4eb..234eaf0342 100644 --- a/src/sbbs3/sbbsecho.h +++ b/src/sbbs3/sbbsecho.h @@ -29,7 +29,7 @@ #include "ini_file.h" #define SBBSECHO_VERSION_MAJOR 3 -#define SBBSECHO_VERSION_MINOR 12 +#define SBBSECHO_VERSION_MINOR 13 #define SBBSECHO_PRODUCT_CODE 0x12FF /* from http://ftsc.org/docs/ftscprod.013 */ -- GitLab