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)
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;
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;
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
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
}
phase++;
}
+(void) printf("JMPDBG checkseq status='%s'\n",spf_spfASCII(spf));
return spf;
#undef OPEP
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;
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;
areequal=false;
}
}
+(void) printf("res='%d'\n", areequal); //JMPDBG
return areequal;
}
/*