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