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]
