james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Danny Angus (JIRA)" <server-...@james.apache.org>
Subject [jira] Commented: (JAMES-302) Functionality of org.apache.james.dnsserver.DNSServer.getByName(String) is not symetric to java.net.InetAddress.getByName(String)
Date Tue, 06 Sep 2005 09:39:30 GMT
    [ http://issues.apache.org/jira/browse/JAMES-302?page=comments#action_12322721 ] 

Danny Angus commented on JAMES-302:
-----------------------------------

"I seem to remember reading in some RFC that mail should always rely on DNS information and
should not be delivered base on local host tables"

For SMTP this is largely correct, SMTP mail hosts may differ widely from other domain hosts
and it is the MX records that mail is principally interested in.

However resolving IP addresses isn't quite the same thing, and may be required in James for
other things, such as IP or hostname black/white lists or resolution of hosts for conectionsto
other services/protocols.

I think the crux of the matter is in the classnames though, dnsserver.DNSServer.getByName()
clearly implies that the lookup will be resolved by DNS not by refrence to /etc/hosts 

Lets be clear about what behaviour we want here, and why.

Why "in v2.2.0 java.net.InetAddress.getByName() has pretty thoroughly been replaced by org.apache.james.dnsserver.DNSServer.getByName(),
" in the first place?





> Functionality of org.apache.james.dnsserver.DNSServer.getByName(String) is not symetric
to java.net.InetAddress.getByName(String)
> ---------------------------------------------------------------------------------------------------------------------------------
>
>          Key: JAMES-302
>          URL: http://issues.apache.org/jira/browse/JAMES-302
>      Project: James
>         Type: Bug
>   Components: DNSServer
>     Versions: 2.2.0
>  Environment: Tested on WIN2000, JDK 1.4.1_01-b01
>     Reporter: Steve Brewin
>     Priority: Minor
>      Fix For: 2.3.0

>
> org.apache.james.dnsserver.DNSServer.getByName(String) does not always return the same
result as java.net.InetAddress.getByName(address). Sometimes an exception is thrown when the
standard implementation does not.
> When passed a fully qualified domain name the results are the same. When passed a hostname
or the special name 'localhost', a java.net.UnknownHostException is thrown by org.apache.james.dnsserver.DNSServer
while java.net.InetAddress resolves the addresses correctly.
> This is a critical issue as in v2.2.0 java.net.InetAddress.getByName() has pretty thoroughly
been replaced by org.apache.james.dnsserver.DNSServer.getByName(), but in the noted circumstances
it doesn't perform the same. Dependent code breaks.
> Here are the contrasting examples...
> // FAILS
> String address = "localhost";
> java.net.InetAddress inetAddress = org.apache.james.dnsserver.DNSServer.getByName(address);
> return inetAddress;
> // FAILS
> String address = "hostname";
> java.net.InetAddress inetAddress = org.apache.james.dnsserver.DNSServer.getByName(address);
> return inetAddress;
> // SUCCEEDS
> String address = "localhost";
> java.net.InetAddress inetAddress = java.net.InetAddress.getByName(address);
> return inetAddress;
> // SUCCEEDS
> String address = "hostname";
> java.net.InetAddress inetAddress = java.net.InetAddress.getByName(address);
> return inetAddress;

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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


Mime
View raw message