Author: bago
Date: Sun Feb 24 13:44:53 2008
New Revision: 630686
URL: http://svn.apache.org/viewvc?rev=630686&view=rev
Log:
Make sure we correctly use "postmaster" as localpart when we receive no local
part.
Remove workaround from the testsuite.
Make sure we don't check the whole record when the input IP is malformed but
direclty return the permerror (JSPF-60).
Modified:
james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPFSession.java
james/jspf/trunk/src/main/java/org/apache/james/jspf/impl/SPF.java
james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
james/jspf/trunk/src/test/resources/org/apache/james/jspf/tests.yml
Modified:
james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPFSession.java
URL:
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPFSession.java?rev=630686&r1=630685&r2=630686&view=diff
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPFSession.java
(original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPFSession.java
Sun Feb 24 13:44:53 2008
@@ -112,6 +112,9 @@
if (fromParts.length > 1) {
this.senderDomain = fromParts[fromParts.length -1];
this.currentSenderPart = mailFrom.substring(0,
mailFrom.length() - senderDomain.length() - 1);
+ if (this.currentSenderPart.length() == 0) {
+ this.currentSenderPart = "postmaster";
+ }
} else {
this.currentSenderPart = "postmaster";
this.senderDomain = mailFrom;
Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/impl/SPF.java
URL:
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/impl/SPF.java?rev=630686&r1=630685&r2=630686&view=diff
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/impl/SPF.java
(original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/impl/SPF.java Sun Feb
24 13:44:53 2008
@@ -341,11 +341,14 @@
public DNSLookupContinuation checkSPF(SPFSession spfData) throws
PermErrorException,
NoneException, TempErrorException, NeutralException {
- SPFChecker policyChecker = new PolicyChecker(getPolicies());
- SPFChecker recordChecker = new SPFRecordChecker();
-
- spfData.pushChecker(recordChecker);
- spfData.pushChecker(policyChecker);
+ // if we already have a result we don't need to add further processing.
+ if (spfData.getCurrentResultExpanded() == null) {
+ SPFChecker policyChecker = new PolicyChecker(getPolicies());
+ SPFChecker recordChecker = new SPFRecordChecker();
+
+ spfData.pushChecker(recordChecker);
+ spfData.pushChecker(policyChecker);
+ }
return null;
}
Modified:
james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
URL:
http://svn.apache.org/viewvc/james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java?rev=630686&r1=630685&r2=630686&view=diff
==============================================================================
--- james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
(original)
+++ james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
Sun Feb 24 13:44:53 2008
@@ -310,7 +310,7 @@
if (currentTest.get("explanation") != null) {
// Check for our default explanation!
- if (currentTest.get("explanation").equals("DEFAULT") ||
currentTest.get("explanation").equals("postmaster") ) {
+ if (currentTest.get("explanation").equals("DEFAULT")) {
assertTrue(res.getExplanation().startsWith("http://www.openspf.org/why.html?sender="));
} else if (currentTest.get("explanation").equals("cafe:babe::1 is
queried as
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa")) {
// See
http://java.sun.com/j2se/1.4.2/docs/api/java/net/Inet6Address.html
Modified: james/jspf/trunk/src/test/resources/org/apache/james/jspf/tests.yml
URL:
http://svn.apache.org/viewvc/james/jspf/trunk/src/test/resources/org/apache/james/jspf/tests.yml?rev=630686&r1=630685&r2=630686&view=diff
==============================================================================
--- james/jspf/trunk/src/test/resources/org/apache/james/jspf/tests.yml
(original)
+++ james/jspf/trunk/src/test/resources/org/apache/james/jspf/tests.yml Sun Feb
24 13:44:53 2008
@@ -1,6 +1,18 @@
---
description: Converted tests
tests:
+ test-#double@:
+ helo: spf1-test.foo.bar
+ host: 192.0.2.200
+ mailfrom: '"[EMAIL PROTECTED]"@spf1-test.foo.bar'
+ result: pass
+ explanation:
+ test-#malformedip:
+ helo: spf1-test.foo.bar
+ host: 192.0.2.
+ mailfrom: 'spf1-test.foo.bar'
+ result: permerror
+ explanation:
test-#1:
helo: spf1-test.foo.bar
host: 192.0.2.200
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]