Author: bago
Date: Mon Apr 16 04:05:13 2007
New Revision: 529205

URL: http://svn.apache.org/viewvc?view=rev&rev=529205
Log:
Small change to ExpModifier to support "exp=" as non permerror as required by 
the currently discussed Errata for RFC4408.

Modified:
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
    james/jspf/trunk/src/test/resources/org/apache/james/jspf/test_parser.txt

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java?view=diff&rev=529205&r1=529204&r2=529205
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
 Mon Apr 16 04:05:13 2007
@@ -71,7 +71,7 @@
                         }
                         try {
                             spfData.setExplanation(new MacroExpand(spfData, 
log)
-                                    
.expandExplanation(SPF1Utils.DEFAULT_EXPLANATION));
+                                    .expandExplanation(explanation));
                         } catch (PermErrorException e) {
                             // Should never happen !
                             log.debug("Invalid defaulfExplanation: " + 
explanation);

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java?view=diff&rev=529205&r1=529204&r2=529205
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java 
(original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java 
Mon Apr 16 04:05:13 2007
@@ -39,9 +39,13 @@
 
     /**
      * ABNF: explanation = "exp" "=" domain-spec
+     * 
+     * NOTE: the last +"?" has been added to support RFC4408 ERRATA for the 
EXP modifier.
+     * An "exp=" should not result in a perm error but should be ignored.
+     * Errata: http://www.openspf.org/RFC_4408/Errata#empty-exp
      */
     public static final String REGEX = "[eE][xX][pP]" + "\\="
-            + SPFTermsRegexps.DOMAIN_SPEC_REGEX;
+            + SPFTermsRegexps.DOMAIN_SPEC_REGEX+"?";
 
     private DNSService dnsService;
 
@@ -56,6 +60,11 @@
     protected void checkSPFLogged(SPF1Data spfData) throws PermErrorException {
         String exp = null;
         String host = getHost();
+        
+        // RFC4408 Errata: http://www.openspf.org/RFC_4408/Errata#empty-exp
+        if (host == null) {
+            return;
+        }
 
         // If we should ignore the explanation we don't have to run this class
         if (spfData.ignoreExplanation() == true)

Modified: 
james/jspf/trunk/src/test/resources/org/apache/james/jspf/test_parser.txt
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/test/resources/org/apache/james/jspf/test_parser.txt?view=diff&rev=529205&r1=529204&r2=529205
==============================================================================
--- james/jspf/trunk/src/test/resources/org/apache/james/jspf/test_parser.txt 
(original)
+++ james/jspf/trunk/src/test/resources/org/apache/james/jspf/test_parser.txt 
Mon Apr 16 04:05:13 2007
@@ -265,11 +265,14 @@
 err-msg         /.*/ no errors
 rec-out         /.*/ SPF record:  v=spf1 a:/x32.com//12 redirect:asdf.net
 
-spftest spf "v=spf1 a:/x32.com//12 redirect=softfail"
-rec-in          /.*/ SPF record in:  v=spf1 a:/x32.com//12 redirect=softfail
-err-msg         jspf no errors
-err-msg         /.*/ Warning: Hostname has a missing or invalid TLD
-rec-out         /.*/ SPF record:  v=spf1 a:/x32.com//12 redirect:softfail
+# This is currently under discussion in the RFC4408 errata.
+# http://www.openspf.org/RFC_4408/Errata#empty-exp
+# Some of the proposed solution would declare this a a perm failure, others as 
a no error.
+#spftest spf "v=spf1 a:/x32.com//12 redirect=softfail"
+#rec-in          /.*/ SPF record in:  v=spf1 a:/x32.com//12 redirect=softfail
+#err-msg         jspf no errors
+#err-msg         /.*/ Warning: Hostname has a missing or invalid TLD
+#rec-out         /.*/ SPF record:  v=spf1 a:/x32.com//12 redirect:softfail
 
 spftest spf "v=spf1 a:/x32.com//12"
 rec-in          /.*/ SPF record in:  v=spf1 a:/x32.com//12



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to