Author: bago Date: Fri Jul 21 01:12:36 2006 New Revision: 424223 URL: http://svn.apache.org/viewvc?rev=424223&view=rev Log: Added singleIPperMX optional configuration to dnsserver (see JAMES-358)
Modified: james/server/trunk/src/conf/james-config.xml james/server/trunk/src/java/org/apache/james/dnsserver/DNSServer.java Modified: james/server/trunk/src/conf/james-config.xml URL: http://svn.apache.org/viewvc/james/server/trunk/src/conf/james-config.xml?rev=424223&r1=424222&r2=424223&view=diff ============================================================================== --- james/server/trunk/src/conf/james-config.xml (original) +++ james/server/trunk/src/conf/james-config.xml Fri Jul 21 01:12:36 2006 @@ -763,6 +763,12 @@ <!-- Maximum number of entries to maintain in the DNS cache --> <maxcachesize>50000</maxcachesize> + + <!-- Uncomment this if you want James to try a single server for each --> + <!-- multihomed mx host. --> + <!-- + <singleIPperMX> true </singleIPperMX> + --> </dnsserver> <!-- The RemoteManager server is enabled by default --> Modified: james/server/trunk/src/java/org/apache/james/dnsserver/DNSServer.java URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/dnsserver/DNSServer.java?rev=424223&r1=424222&r2=424223&view=diff ============================================================================== --- james/server/trunk/src/java/org/apache/james/dnsserver/DNSServer.java (original) +++ james/server/trunk/src/java/org/apache/james/dnsserver/DNSServer.java Fri Jul 21 01:12:36 2006 @@ -96,6 +96,12 @@ private Comparator mxComparator = new MXRecordComparator(); /** + * If true than the DNS server will return only a single IP per each MX record + * when looking up SMTPServers + */ + private boolean singleIPPerMX; + + /** * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration) */ public void configure( final Configuration configuration ) @@ -115,6 +121,8 @@ } } + singleIPPerMX = configuration.getChild( "singleIPperMX" ).getValueAsBoolean( false ); + // Get the DNS servers that this service will use for lookups final Configuration serversConfiguration = configuration.getChild( "servers" ); final Configuration[] serverConfigurations = @@ -438,7 +446,11 @@ final String nextHostname = (String)mxHosts.next(); InetAddress[] addrs = null; try { - addrs = getAllByName(nextHostname); + if (singleIPPerMX) { + addrs = new InetAddress[] {getByName(nextHostname)}; + } else { + addrs = getAllByName(nextHostname); + } } catch (UnknownHostException uhe) { // this should never happen, since we just got // this host from mxHosts, which should have --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]