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]