Author: bago Date: Mon May 22 01:24:33 2006 New Revision: 408598 URL: http://svn.apache.org/viewvc?rev=408598&view=rev Log: Thread safety for Terms (JSPF-3)
Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericModifier.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IP4Mechanism.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/UnknownModifier.java Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java Mon May 22 01:24:33 2006 @@ -43,9 +43,9 @@ + SPF1Parser.DOMAIN_SPEC_REGEX + ")?" + "(?:" + DUAL_CIDR_LENGTH_REGEX + ")?"; - protected int ip4cidr; + private int ip4cidr; - protected int ip6cidr; + private int ip6cidr; /** * @@ -66,11 +66,11 @@ if (Inet6Util.isValidIPV4Address(spfData.getIpAddress())) { IPAddr checkAddress = IPAddr.getAddress(spfData.getIpAddress(), - ip4cidr); + getIp4cidr()); try { addressList.addAll(spfData.getDnsProbe().getARecords(host, - ip4cidr)); + getIp4cidr())); if (checkAddressList(checkAddress, addressList)) { return true; } @@ -82,11 +82,11 @@ } } else { IPAddr checkAddress = IPAddr.getAddress(spfData.getIpAddress(), - ip6cidr); + getIp6cidr()); try { addressList.addAll(spfData.getDnsProbe().getAAAARecords( - host, ip6cidr)); + host, getIp6cidr())); if (checkAddressList(checkAddress, addressList)) { return true; } @@ -109,7 +109,7 @@ /** * @see org.apache.james.jspf.terms.GenericMechanism#config(ConfigurationMatch) */ - public void config(ConfigurationMatch params) throws PermErrorException { + public synchronized void config(ConfigurationMatch params) throws PermErrorException { super.config(params); if (params.groupCount() >= 2 && params.group(2) != null) { ip4cidr = Integer.parseInt(params.group(2).toString()); @@ -151,6 +151,20 @@ } } return false; + } + + /** + * @return Returns the ip4cidr. + */ + protected synchronized int getIp4cidr() { + return ip4cidr; + } + + /** + * @return Returns the ip6cidr. + */ + protected synchronized int getIp6cidr() { + return ip6cidr; } } Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java Mon May 22 01:24:33 2006 @@ -50,7 +50,7 @@ */ public String run(SPF1Data spfData) { String exp = null; - String host = this.host; + String host = getHost(); // If the currentResult is not fail we have no need to run all these // methods! Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java Mon May 22 01:24:33 2006 @@ -49,7 +49,7 @@ + IP4_CIDR_LENGTH_REGEX + ")?" + "(?:/" + IP6_CIDR_LENGTH_REGEX + ")?"; - protected String domain; + private String domain; /** * Expand the hostname @@ -58,7 +58,7 @@ * @throws PermErrorException */ protected String expandHost(SPF1Data spfData) throws PermErrorException { - String host = this.domain; + String host = getDomain(); if (host == null) { host = spfData.getCurrentDomain(); } else { @@ -75,12 +75,19 @@ /** * @see org.apache.james.jspf.core.Configurable#config(ConfigurationMatch) */ - public void config(ConfigurationMatch params) throws PermErrorException { + public synchronized void config(ConfigurationMatch params) throws PermErrorException { if (params.groupCount() >= 1 && params.group(1) != null) { domain = params.group(1); } else { domain = null; } + } + + /** + * @return Returns the domain. + */ + protected synchronized String getDomain() { + return domain; } } Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericModifier.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericModifier.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericModifier.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericModifier.java Mon May 22 01:24:33 2006 @@ -32,7 +32,7 @@ */ public abstract class GenericModifier implements Modifier, Configurable { - protected String host; + private String host; /** * @see org.apache.james.jspf.core.Modifier#run(SPF1Data) @@ -44,10 +44,17 @@ /** * @see org.apache.james.jspf.core.Configurable#config(ConfigurationMatch) */ - public void config(ConfigurationMatch params) throws PermErrorException { + public synchronized void config(ConfigurationMatch params) throws PermErrorException { if (params.groupCount() > 0) { this.host = params.group(1); } + } + + /** + * @return Returns the host. + */ + protected synchronized String getHost() { + return host; } } Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IP4Mechanism.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IP4Mechanism.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IP4Mechanism.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IP4Mechanism.java Mon May 22 01:24:33 2006 @@ -39,8 +39,6 @@ private IPAddr ip = null; - private int maskLength = 0; - /** * * @see org.apache.james.jspf.core.GenericMechanism#run(org.apache.james.jspf.core.SPF1Data) @@ -48,10 +46,10 @@ public boolean run(SPF1Data spfData) throws PermErrorException { IPAddr originalIP; - originalIP = IPAddr.getAddress(spfData.getIpAddress(), ip + originalIP = IPAddr.getAddress(spfData.getIpAddress(), getIp() .getMaskLength()); - if (ip.getMaskedIPAddress().equals(originalIP.getMaskedIPAddress())) { + if (getIp().getMaskedIPAddress().equals(originalIP.getMaskedIPAddress())) { return true; } else { // No match @@ -62,7 +60,7 @@ /** * @see org.apache.james.jspf.terms.GenericMechanism#config(ConfigurationMatch) */ - public void config(ConfigurationMatch params) throws PermErrorException { + public synchronized void config(ConfigurationMatch params) throws PermErrorException { if (params.groupCount() == 0) { throw new PermErrorException("Missing ip"); } @@ -70,7 +68,7 @@ if (!isValidAddress(ipString)) { throw new PermErrorException("Invalid Address: " + ipString); } - maskLength = getMaxCidr(); + int maskLength = getMaxCidr(); if (params.groupCount() >= 2 && params.group(2) != null) { maskLength = Integer.parseInt(params.group(2).toString()); if (maskLength > getMaxCidr()) { @@ -94,6 +92,13 @@ */ protected int getMaxCidr() { return 32; + } + + /** + * @return Returns the ip. + */ + protected synchronized IPAddr getIp() { + return ip; } } Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java Mon May 22 01:24:33 2006 @@ -57,7 +57,7 @@ * @throws NoneException */ public boolean run(SPF1Data spfData) throws PermErrorException, TempErrorException, NoneException { - String host = this.host; + String host = getHost(); // update currentDepth spfData.setCurrentDepth(spfData.getCurrentDepth() + 1); @@ -98,11 +98,18 @@ /** * @see org.apache.james.jspf.core.Configurable#config(ConfigurationMatch) */ - public void config(ConfigurationMatch params) throws PermErrorException { + public synchronized void config(ConfigurationMatch params) throws PermErrorException { if (params.groupCount() == 0) { throw new PermErrorException("Include mechanism without an host"); } host = params.group(1); + } + + /** + * @return Returns the host. + */ + protected synchronized String getHost() { + return host; } } Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java Mon May 22 01:24:33 2006 @@ -57,10 +57,10 @@ // get the ipAddress try { IPAddr checkAddress = IPAddr.getAddress(spfData.getIpAddress(), - ip4cidr); + getIp4cidr()); try { addressList.addAll(spfData.getDnsProbe().getMXRecords(host, - ip4cidr)); + getIp4cidr())); if (checkAddressList(checkAddress, addressList)) { return true; } Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java Mon May 22 01:24:33 2006 @@ -56,7 +56,7 @@ // the redirect modifier is used only when we had no previous matches if (!spfData.isMatch()) { - String host = this.host; + String host = getHost(); // update currentDepth spfData.setCurrentDepth(spfData.getCurrentDepth() + 1); Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/UnknownModifier.java URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/UnknownModifier.java?rev=408598&r1=408597&r2=408598&view=diff ============================================================================== --- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/UnknownModifier.java (original) +++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/UnknownModifier.java Mon May 22 01:24:33 2006 @@ -57,7 +57,7 @@ /** * @see org.apache.james.jspf.core.Configurable#config(ConfigurationMatch) */ - public void config(ConfigurationMatch params) throws PermErrorException { + public synchronized void config(ConfigurationMatch params) throws PermErrorException { // Nothing to do } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]