From 92971c35a3d2eecc8679fb48ff1e5607a4087e49 Mon Sep 17 00:00:00 2001 From: "Jean-Marc Pigeon (Delson)" Date: Thu, 15 Aug 2024 18:31:42 -0400 Subject: [PATCH] Improving unidns module (adding mechanism) --- app/emlrec.c | 2 +- lib/subrou.c | 2 +- lib/unidns.c | 14 ++++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/emlrec.c b/app/emlrec.c index 3c9b1fb..87666ae 100644 --- a/app/emlrec.c +++ b/app/emlrec.c @@ -61,7 +61,7 @@ while (proceed==true) { (void) rec_modemodrec(true); (void) sig_trapsignal(true,sig_alrm); break; - case 2 : //doing main tash + case 2 : //doing main task (void) rec_handlesmtp(); break; case 3 : //doing main tash diff --git a/lib/subrou.c b/lib/subrou.c index 7d767ef..a33c296 100644 --- a/lib/subrou.c +++ b/lib/subrou.c @@ -21,7 +21,7 @@ //version definition #define VERSION "0.4.2" -#define RELEASE "8" +#define RELEASE "9" //Public variables PUBLIC int debug=0; //debug level diff --git a/lib/unidns.c b/lib/unidns.c index 34c2983..4fb861f 100644 --- a/lib/unidns.c +++ b/lib/unidns.c @@ -169,9 +169,12 @@ static SPFENU checkseq(int *try,char *seq,char *peerip,SPFENU spf) { #define OPEP "unidns.c:checkseq" +SPFENU locspf; int phase; _Bool proceed; +spf=spf_neutral; +locspf=spf_pass; phase=0; proceed=true; (void) printf("JMPDBG checkseq seq=<%s>\n",seq); @@ -181,16 +184,16 @@ while (proceed==true) { if (strlen(seq)==1) { switch (seq[0]) { case '?' : - spf=spf_neutral; + locspf=spf_neutral; break; case '~' : - spf=spf_softfail; + locspf=spf_softfail; break; case '+' : - spf=spf_pass; + locspf=spf_pass; break; case '-' : - spf=spf_fail; + locspf=spf_fail; break; default : (void) rou_alert(0,"%s <%s> is not an expected SPF Prefix (Bug?)", @@ -202,6 +205,9 @@ while (proceed==true) { break; case 1 : //check directive switch (tellmechanism(seq)) { + case mch_all : //usually last in sequence + spf=locspf; + break; case mch_include : //include sub domain (void) printf("JMPDBG should include <%s>\n",seq+1); if (seq[0]==':') { -- 2.47.3