Author: norman
Date: Mon Mar 28 11:52:28 2011
New Revision: 1086199
URL: http://svn.apache.org/viewvc?rev=1086199&view=rev
Log:
Allow to bind to more then one socketaddress. Part of JAMES-1214
Modified:
james/server/trunk/container-spring/src/main/config/james/imapserver.xml
james/server/trunk/container-spring/src/main/config/james/lmtpserver.xml
james/server/trunk/container-spring/src/main/config/james/pop3server.xml
james/server/trunk/container-spring/src/main/config/james/smtpserver.xml
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3TestConfiguration.java
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ServerMBean.java
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
Modified:
james/server/trunk/container-spring/src/main/config/james/imapserver.xml
URL:
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/imapserver.xml?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/config/james/imapserver.xml
(original)
+++ james/server/trunk/container-spring/src/main/config/james/imapserver.xml
Mon Mar 28 11:52:28 2011
@@ -21,7 +21,7 @@
<!-- See http://james.apache.org/server/3/config.html for usage -->
<imapserver enabled="true">
- <port>143</port>
+ <bind>0.0.0.0:143</bind>
<connectionBacklog>200</connectionBacklog>
<tls socketTLS="false" startTLS="false">
</tls>
Modified:
james/server/trunk/container-spring/src/main/config/james/lmtpserver.xml
URL:
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/lmtpserver.xml?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/config/james/lmtpserver.xml
(original)
+++ james/server/trunk/container-spring/src/main/config/james/lmtpserver.xml
Mon Mar 28 11:52:28 2011
@@ -21,8 +21,7 @@
<!-- See http://james.apache.org/server/3/config.html for usage -->
<lmtpserver enabled="false">
- <port>24</port>
- <bind>127.0.0.1</bind>
+ <bind>127.0.0.1:24</bind>
<connectionBacklog>200</connectionBacklog>
<connectiontimeout>1200</connectiontimeout>
<connectionLimit> 0 </connectionLimit>
Modified:
james/server/trunk/container-spring/src/main/config/james/pop3server.xml
URL:
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/pop3server.xml?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/config/james/pop3server.xml
(original)
+++ james/server/trunk/container-spring/src/main/config/james/pop3server.xml
Mon Mar 28 11:52:28 2011
@@ -21,7 +21,7 @@
<!-- See http://james.apache.org/server/3/config.html for usage -->
<pop3server enabled="true">
- <port>110</port>
+ <bind>0.0.0.0:110</bind>
<connectionBacklog>200</connectionBacklog>
<tls socketTLS="false" startTLS="false">
<keystore>file://conf/keystore</keystore>
Modified:
james/server/trunk/container-spring/src/main/config/james/smtpserver.xml
URL:
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/smtpserver.xml?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/config/james/smtpserver.xml
(original)
+++ james/server/trunk/container-spring/src/main/config/james/smtpserver.xml
Mon Mar 28 11:52:28 2011
@@ -20,7 +20,7 @@
<!-- See http://james.apache.org/server/3/config.html for usage -->
<smtpserver enabled="true">
- <port>25</port>
+ <bind>0.0.0.0:25</bind>
<connectionBacklog>200</connectionBacklog>
<tls socketTLS="false" startTLS="false">
</tls>
Modified:
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3TestConfiguration.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3TestConfiguration.java?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
---
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3TestConfiguration.java
(original)
+++
james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3TestConfiguration.java
Mon Mar 28 11:52:28 2011
@@ -33,7 +33,7 @@ public class POP3TestConfiguration exten
public void init() {
addProperty("[@enabled]", true);
- addProperty("port", m_pop3ListenerPort);
+ addProperty("bind", "127.0.0.1:" +m_pop3ListenerPort);
addProperty("helloName", "myMailServer");
addProperty("connectiontimeout", "360000");
addProperty("handlerchain.[@coreHandlersPackage]",
CoreCmdHandlerLoader.class.getName());
Modified:
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ServerMBean.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ServerMBean.java?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
---
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ServerMBean.java
(original)
+++
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ServerMBean.java
Mon Mar 28 11:52:28 2011
@@ -58,19 +58,9 @@ public interface ServerMBean {
*/
boolean getStartTLSSupported();
-
- /**
- * Return the IPAddress to which the server is bound
- *
- * @return ipAddress or null if not bound to some specifc ip
- */
- String getIPAddress();
-
- /**
- * Return the port number to which ther server is bound
- * @return
- */
- int getPort();
+
+ String[] getBoundAddresses();
+
/**
* Return the socket type of the server. Which can either be plain or
secure
Modified:
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
---
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
(original)
+++
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
Mon Mar 28 11:52:28 2011
@@ -20,8 +20,11 @@ package org.apache.james.protocols.lib.n
import java.io.FileInputStream;
import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.security.KeyStore;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.Executor;
import javax.annotation.PostConstruct;
@@ -140,29 +143,31 @@ public abstract class AbstractConfigurab
logger.info(getServiceType() + " disabled by configuration");
return;
}
- setPort(config.getInt("port", getDefaultPort()));
-
-
-
- StringBuilder infoBuffer;
-
- try {
- final String bindAddress = config.getString("bind",null);
- if( null != bindAddress ) {
- String bindTo =
InetAddress.getByName(bindAddress).getHostName();
- infoBuffer =
- new StringBuilder(64)
- .append(getServiceType())
- .append(" bound to: ")
- .append(bindTo);
- logger.info(infoBuffer.toString());
- setIP(bindTo);
+ String listen[] = config.getString("bind", "0.0.0.0:" +
getDefaultPort()).split(",");
+ List<InetSocketAddress> bindAddresses = new
ArrayList<InetSocketAddress>();
+ for (int i = 0; i < listen.length; i++) {
+ String bind[] = listen[i].split(":");
+
+ InetSocketAddress address;
+ String ip = bind[0].trim();
+ int port = Integer.parseInt(bind[1].trim());
+ if (ip.equals("0.0.0.0") == false) {
+ try {
+ ip = InetAddress.getByName(ip).getHostName();
+ } catch (final UnknownHostException unhe) {
+ throw new ConfigurationException("Malformed bind parameter
in configuration of service " + getServiceType(), unhe);
+ }
}
+ address = new InetSocketAddress(ip, port);
+
+ StringBuilder infoBuffer = new
StringBuilder(64).append(getServiceType()).append(" bound to:
").append(ip).append(":").append(port);
+ logger.info(infoBuffer.toString());
+
+ bindAddresses.add(address);
}
- catch( final UnknownHostException unhe ) {
- throw new ConfigurationException( "Malformed bind parameter in
configuration of service " + getServiceType(), unhe );
- }
+ setListenAddresses(bindAddresses);
+
jmxName = config.getString("jmxName",getDefaultJMXName());
int ioWorker = config.getInt("ioWorkerCount", DEFAULT_IO_WORKER_COUNT);
@@ -172,7 +177,7 @@ public abstract class AbstractConfigurab
setTimeout(config.getInt(TIMEOUT_NAME,DEFAULT_TIMEOUT));
- infoBuffer =
+ StringBuilder infoBuffer =
new StringBuilder(64)
.append(getServiceType())
.append(" handler connection timeout is: ")
@@ -519,14 +524,6 @@ public abstract class AbstractConfigurab
/*
* (non-Javadoc)
- * @see org.apache.james.socket.ServerMBean#getIPAddress()
- */
- public String getIPAddress() {
- return getIP();
- }
-
- /*
- * (non-Javadoc)
* @see org.apache.james.server.jmx.ServerMBean#getHandledConnections()
*/
public long getHandledConnections() {
@@ -546,4 +543,22 @@ public abstract class AbstractConfigurab
protected ConnectionCountHandler getConnectionCountHandler() {
return countHandler;
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.lib.jmx.ServerMBean#getBoundAddresses()
+ */
+ public String[] getBoundAddresses() {
+
+ List<InetSocketAddress> addresses = getListenAddresses();
+ String[] addrs = new String[addresses.size()];
+ for (int i = 0; i < addresses.size(); i++) {
+ InetSocketAddress address = addresses.get(i);
+ addrs[i] = address.getHostName() + ":" + address.getPort();
+ }
+
+ return addrs;
+ }
+
+
}
Modified:
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java?rev=1086199&r1=1086198&r2=1086199&view=diff
==============================================================================
---
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
(original)
+++
james/server/trunk/smtpserver/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
Mon Mar 28 11:52:28 2011
@@ -147,7 +147,7 @@ public class SMTPTestConfiguration exten
addProperty("[@enabled]", true);
- addProperty("port", m_smtpListenerPort);
+ addProperty("bind", "127.0.0.1:" + m_smtpListenerPort);
if (m_connectionLimit != null) addProperty("connectionLimit",
""+m_connectionLimit.intValue());
if (m_connectionBacklog != null) addProperty("connectionBacklog", ""+
m_connectionBacklog.intValue());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]