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

[EMAIL PROTECTED] 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> !DSPAM:1,4642deea79381796414773!
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to