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 2006/05/22 10:24:33 UTC
svn commit: r408598 -
/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org