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 no...@apache.org on 2006/09/24 19:34:53 UTC

svn commit: r449441 - /james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java

Author: norman
Date: Sun Sep 24 10:34:52 2006
New Revision: 449441

URL: http://svn.apache.org/viewvc?view=rev&rev=449441
Log:
Allow the user to set a default explanation. See JSPF-28

Modified:
    james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java?view=diff&rev=449441&r1=449440&r2=449441
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java Sun Sep 24 10:34:52 2006
@@ -48,6 +48,8 @@
     private SPF1Parser parser;
 
     private Logger log;
+    
+    private String defaultExplanation = null;
 
     /**
      * Uses default Log4JLogger and DNSJava based dns resolver
@@ -242,12 +244,24 @@
         
         if (result.equals(SPF1Constants.FAIL)) {  
             if (spfData.getExplanation()==null || spfData.getExplanation().equals("")) {
-                try {
-                    spfData.setExplanation(new MacroExpand(spfData, log)
-                            .expandExplanation(SPF1Utils.DEFAULT_EXPLANATION));
-                } catch (PermErrorException e) {}
+                if(defaultExplanation == null) {
+                    try {
+                        spfData.setExplanation(new MacroExpand(spfData, log)
+                                .expandExplanation(SPF1Utils.DEFAULT_EXPLANATION));
+                    } catch (PermErrorException e) {
+                        // Should never happen !
+                        log.debug("Invalid defaulfExplanation: " + SPF1Utils.DEFAULT_EXPLANATION);
+                    }
+                } else {
+                    try {
+                        spfData.setExplanation(new MacroExpand(spfData, log)
+                                .expandExplanation(defaultExplanation));
+                    } catch (PermErrorException e) {
+                        log.error("Invalid defaultExplanation: " + defaultExplanation);
+                    }
+                }
+                explanation = spfData.getExplanation();
             }
-            explanation = spfData.getExplanation();
         }
         
         return new SPFInternalResult(result, explanation);
@@ -262,5 +276,14 @@
     public synchronized void setTimeOut(int timeOut) {
         log.debug("TimeOut was set to: " + timeOut);
         dnsProbe.setTimeOut(timeOut);
+    }
+    
+    /**
+     * Set the default explanation which will be used if no explanation is found in the SPF Record
+     *  
+     * @param defaultExplanation The explanation to use if no explanation is found in the SPF Record
+     */
+    public synchronized void setDefaultExplanation(String defaultExplanation) {
+        this.defaultExplanation = defaultExplanation;      
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org