From e5bed26bca903d10faf4180bfee4ea2517e6f682 Mon Sep 17 00:00:00 2001 From: Jean-Marc Pigeon Date: Sun, 16 Nov 2025 16:38:12 -0500 Subject: [PATCH] Problem with get_spf --- lib/gesspf.c | 26 +++++++++++++++----------- lib/lvleml.c | 3 ++- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/gesspf.c b/lib/gesspf.c index 727716d..3e20e6a 100644 --- a/lib/gesspf.c +++ b/lib/gesspf.c @@ -651,23 +651,27 @@ PUBLIC SPFENU spf_getspf(char *mailfrom,char *peerip) SPFENU spf; char *domain; -AFNTYP **afns; spf=spf_unknown; domain=strchr(mailfrom,'@'); +(void) rou_dbglive(9,OPEP,"Domain=<%s>",domain); if (domain!=(char *)0) domain++; -afns=afn_getipnums(peerip); -if ((afns!=(AFNTYP **)0)&&(domain!=(char *)0)) { - int try; - - try=0; - for (int i=0;afns[i]!=(AFNTYP *)0;i++) { - spf=spf_getstatus(&try,domain,afns[i]); - (void) rou_dbglive(9,OPEP,"SPF[%d] for [%s]=<%s>", - i,afns[i]->strnumip,spf_spfASCII(spf)); +if (domain!=(char *)0) { + AFNTYP **afns; + + afns=afn_getipnums(peerip); + if (afns!=(AFNTYP **)0) { + int try; + + try=0; + for (int i=0;afns[i]!=(AFNTYP *)0;i++) { + spf=spf_getstatus(&try,domain,afns[i]); + (void) rou_dbglive(9,OPEP,"SPF[%d] for [%s]=<%s>", + i,afns[i]->strnumip,spf_spfASCII(spf)); + } + afns=(AFNTYP **)rou_freelist((void **)afns,(genfree_t)afn_freeipnum); } - afns=(AFNTYP **)rou_freelist((void **)afns,(genfree_t)afn_freeipnum); } return spf; diff --git a/lib/lvleml.c b/lib/lvleml.c index b5e22e1..eed41e5 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -1701,7 +1701,7 @@ return isok; static _Bool checkfrom(CONTYP *contact,char *mailfrom) { -#define OPEP "lvleml.c:checkfrom," +#define OPEP "lvleml.c:checkfrom" _Bool success; char *strsize; @@ -1772,6 +1772,7 @@ while (proceed==true) { } break; case 5 : //Checking if the SPF is good from the originator + contact->fromspf=spf_getspf(mailfrom,contact->peerip); break; case 6 : //everything ok contact->mailfrom=strdup(mailfrom); -- 2.47.3