You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2008/02/24 22:44:54 UTC

svn commit: r630686 - in /james/jspf/trunk/src: main/java/org/apache/james/jspf/core/SPFSession.java main/java/org/apache/james/jspf/impl/SPF.java test/java/org/apache/james/jspf/AbstractYamlTest.java test/resources/org/apache/james/jspf/tests.yml

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: '"a@test"@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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org