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]

Reply via email to