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/07/21 10:12:38 UTC

svn commit: r424223 - in /james/server/trunk/src: conf/james-config.xml java/org/apache/james/dnsserver/DNSServer.java

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