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: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org