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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]