]> SAFE projects GIT repository - jmp/mailleur/commitdiff
SPF test seems to be working
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 19 Aug 2024 06:46:46 +0000 (02:46 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 19 Aug 2024 06:46:46 +0000 (02:46 -0400)
app/chkdns.c
lib/gesspf.c
lib/subafn.c
lib/subrou.c

index cfa8553c19c46d159970bd4e19d5d99545cf9b1c..750bbcaa96b80a4de1f088e4b316a9167af9fa8a 100644 (file)
@@ -104,7 +104,12 @@ num=0;
 while (fgets(line,sizeof(line),fichier)!=(char *)0) {
   char *ptr;
 
+  (void) printf("JMPDBG line=<%s>\n",line);
   num++;
+  if ((ptr=strchr(line,'\n'))!=(char *)0)
+    *ptr='\000';
+  if ((ptr=strchr(line,'\r'))!=(char *)0)
+    *ptr='\000';
   if ((ptr=strchr(line,'#'))!=(char *)0)
     *ptr='\000';
   if (strlen(line)==0)
index be272dab4a18f6f348eec4a7524cc72e680f1db5..224394ae2719f3d0a056c6a813d53db88e724a5e 100644 (file)
@@ -126,14 +126,10 @@ while (proceed==true) {
       if (strlen(fullspf)==0)
         phase=999;      //no need to go further
       break;
-    case 2      :       //detecting specific char
+    case 2      :       //we got a sequence
       seq=strdup(fullspf);
-      if (strchr("?~-+",fullspf[0])!=(char *)0) {
-        seq[1]='\000';  //on char only
-        phase=999;      //no need to go further
-        }
       break;
-    case 3      :       //cleaning sequence
+    case 3      :       //sync sequence
       if (seq!=(char *)0) {     //always
         char *ptr;
   
@@ -411,12 +407,13 @@ _Bool proceed;
 
 spf=spf_neutral;
 locspf=spf_pass;
+(void) printf("JMPDBG checkseq seq=<%s>\n",seq);
 phase=0;
 proceed=true;
 while (proceed==true) {
   switch (phase) {
     case 0      :       //is the sequence an SPF Mechanisms
-      if (strlen(seq)==1) {
+      if (strchr("?~-+",seq[0])!=(char *)0) {
         switch (seq[0]) {
           case '?'      :
             locspf=spf_neutral;
@@ -430,12 +427,8 @@ while (proceed==true) {
           case '-'      :
             locspf=spf_fail;
             break;
-          default       :
-            (void) rou_alert(0,"%s <%s> is not an expected SPF Prefix (Bug?)",
-                               OPEP,seq);
-            break;
           }
-        phase=999;      //no need to go further
+        seq++;
         }
       break;
     case 1      :       //check directive
@@ -450,6 +443,7 @@ while (proceed==true) {
         case mch_mx             :       //This is a MX refrence
           if (checkmx(domain,afnnum,seq)==true)
             spf=locspf;
+          (void) printf("JMPDBG checkmsx status='%s'\n",spf_spfASCII(spf));
           break;
         case mch_ip4            :       //This is IPV4 number
         case mch_ip6            :       //This is IPV6 number
@@ -483,6 +477,7 @@ while (proceed==true) {
     }
   phase++;
   }
+(void) printf("JMPDBG checkseq status='%s'\n",spf_spfASCII(spf));
 return spf;
 
 #undef  OPEP
@@ -630,7 +625,7 @@ while (proceed==true) {
       if ((list=dns_getspf(domain))==(char *)0) 
         phase=999;      //trouble trouble
       break;
-    case 3      :       //gett the spf LIST related to SPF
+    case 3      :       //get the spf LIST related to SPF
       spf=is_peerip_ok(try,domain,afnnum,list);
       list=rou_freestr(list);
       break;
index 8da984009531afa0be2b06f1bbc866d16abb9ee9..2c0fc158955ee4291e9fb9cbd52e5ba34d6ed5f7 100644 (file)
@@ -36,6 +36,8 @@ areequal=false;
 if (mask>128)
   mask=128;
 maskbyt=mask/8;
+(void) printf("JMPDBG mask='%d' compare <%s> et <%s>",
+               mask,ipnum1->strnumip,ipnum2->strnumip);
 if (memcmp(ipnum1->ip,ipnum2->ip,maskbyt)==0) {
   areequal=true;
   mask%=8;
@@ -51,6 +53,7 @@ if (memcmp(ipnum1->ip,ipnum2->ip,maskbyt)==0) {
       areequal=false;
     }
   }
+(void) printf("res='%d'\n", areequal); //JMPDBG
 return areequal;
 }
 /*
index a88f64c21ad2a30bdec6863b081dcf43fbcd96f5..f30e326d3fbd8f10c47b871b1730213cca6e7fc0 100644 (file)
@@ -21,7 +21,7 @@
 
 //version definition 
 #define VERSION "0.4.2"
-#define RELEASE "23"
+#define RELEASE "24"
 
 //Public variables
 PUBLIC  int debug=0;            //debug level