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 no...@apache.org on 2007/05/10 10:58:48 UTC

svn commit: r536784 - /james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java

Author: norman
Date: Thu May 10 01:58:47 2007
New Revision: 536784

URL: http://svn.apache.org/viewvc?view=rev&rev=536784
Log:
Lookup local hostname and address on init of DNSServer to be able to resolv it later. See JAMES-787 and JAMES-302

Modified:
    james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java

Modified: james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java?view=diff&rev=536784&r1=536783&r2=536784
==============================================================================
--- james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java (original)
+++ james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java Thu May 10 01:58:47 2007
@@ -111,6 +111,13 @@
      * calls
      */
     private boolean setAsDNSJavaDefault;
+    
+    private String localHostName;
+    
+    private String localCanonicalHostName;
+    
+    private String localAddress;
+    
 
     /**
      * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
@@ -228,6 +235,15 @@
             getLogger().info("Registered cache, resolver and search paths as DNSJava defaults");
         }
         
+        // Cache the local hostname and local address. This is needed because 
+        // the following issues:
+        // JAMES-787
+        // JAMES-302
+        InetAddress addr = getLocalHost();
+        localCanonicalHostName = addr.getCanonicalHostName();
+        localHostName = addr.getHostName();
+        localAddress = addr.getHostAddress();
+        
         getLogger().debug("DNSServer ...init end");
     }
 
@@ -492,7 +508,13 @@
      */
     public InetAddress getByName(String host) throws UnknownHostException {
         String name = allowIPLiteral(host);
+         
         try {
+            // Check if its local
+            if (name.equalsIgnoreCase(localHostName) || name.equalsIgnoreCase(localCanonicalHostName) ||name.equals(localAddress)) {
+                return getLocalHost();
+            }
+            
             return org.xbill.DNS.Address.getByAddress(name);
         } catch (UnknownHostException e) {
             Record[] records = lookupNoException(name, Type.A, "A");
@@ -510,6 +532,11 @@
     public InetAddress[] getAllByName(String host) throws UnknownHostException {
         String name = allowIPLiteral(host);
         try {
+            // Check if its local
+            if (name.equalsIgnoreCase(localHostName) || name.equalsIgnoreCase(localCanonicalHostName) ||name.equals(localAddress)) {
+                return new InetAddress[] {getLocalHost()};
+            }
+            
             InetAddress addr = org.xbill.DNS.Address.getByAddress(name);
             return new InetAddress[] {addr};
         } catch (UnknownHostException e) {



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: svn commit: r536784 - /james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java

Posted by Norman Maurer <no...@apache.org>.
Hi guys,

I whould like to backport this change to 2.3 branch because its a
critical bug. Maybe we should make it conifugurable in 2.3 because it
will change the lookup process.

WDYT ?

bye
Norman

norman@apache.org schrieb:
> Author: norman
> Date: Thu May 10 01:58:47 2007
> New Revision: 536784
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=536784
> Log:
> Lookup local hostname and address on init of DNSServer to be able to resolv it later. See JAMES-787 and JAMES-302
>
> Modified:
>     james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java
>
> Modified: james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java
> URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java?view=diff&rev=536784&r1=536783&r2=536784
> ==============================================================================
> --- james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java (original)
> +++ james/server/trunk/core-library/src/main/java/org/apache/james/dnsserver/DNSServer.java Thu May 10 01:58:47 2007
> @@ -111,6 +111,13 @@
>       * calls
>       */
>      private boolean setAsDNSJavaDefault;
> +    
> +    private String localHostName;
> +    
> +    private String localCanonicalHostName;
> +    
> +    private String localAddress;
> +    
>  
>      /**
>       * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
> @@ -228,6 +235,15 @@
>              getLogger().info("Registered cache, resolver and search paths as DNSJava defaults");
>          }
>          
> +        // Cache the local hostname and local address. This is needed because 
> +        // the following issues:
> +        // JAMES-787
> +        // JAMES-302
> +        InetAddress addr = getLocalHost();
> +        localCanonicalHostName = addr.getCanonicalHostName();
> +        localHostName = addr.getHostName();
> +        localAddress = addr.getHostAddress();
> +        
>          getLogger().debug("DNSServer ...init end");
>      }
>  
> @@ -492,7 +508,13 @@
>       */
>      public InetAddress getByName(String host) throws UnknownHostException {
>          String name = allowIPLiteral(host);
> +         
>          try {
> +            // Check if its local
> +            if (name.equalsIgnoreCase(localHostName) || name.equalsIgnoreCase(localCanonicalHostName) ||name.equals(localAddress)) {
> +                return getLocalHost();
> +            }
> +            
>              return org.xbill.DNS.Address.getByAddress(name);
>          } catch (UnknownHostException e) {
>              Record[] records = lookupNoException(name, Type.A, "A");
> @@ -510,6 +532,11 @@
>      public InetAddress[] getAllByName(String host) throws UnknownHostException {
>          String name = allowIPLiteral(host);
>          try {
> +            // Check if its local
> +            if (name.equalsIgnoreCase(localHostName) || name.equalsIgnoreCase(localCanonicalHostName) ||name.equals(localAddress)) {
> +                return new InetAddress[] {getLocalHost()};
> +            }
> +            
>              InetAddress addr = org.xbill.DNS.Address.getByAddress(name);
>              return new InetAddress[] {addr};
>          } catch (UnknownHostException e) {
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>
> !DSPAM:1,4642deea79381796414773!
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org