]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Improving unidns module (adding mechanism)
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Thu, 15 Aug 2024 22:31:42 +0000 (18:31 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Thu, 15 Aug 2024 22:31:42 +0000 (18:31 -0400)
app/emlrec.c
lib/subrou.c
lib/unidns.c

index 3c9b1fbacaad2e1aad060705b0463a99da22df99..87666ae95d91e874b100d76dd1de6ca9e82c7292 100644 (file)
@@ -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
index 7d767eff7f4e9ef9dab1297483836df959de78b8..a33c296918a235425bc82ebab5b281bb30081023 100644 (file)
@@ -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
index 34c298372ddef8a0fc5beb7fff7c98ba2a1d275f..4fb861ffeb396064565b2d842bf983b048b91734 100644 (file)
@@ -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]==':') {