SocketSessionConfigImpl: initialize() uses "localhost" to bind 
InetSocketAddress, should use IP instead
-------------------------------------------------------------------------------------------------------

                 Key: DIRMINA-386
                 URL: https://issues.apache.org/jira/browse/DIRMINA-386
             Project: MINA
          Issue Type: Bug
          Components: Transport
    Affects Versions: 1.1.0, 1.1.1, 2.0.0-M1
         Environment: JDK 5/6, Linux, Windows, Solaris
            Reporter: Kenji Hollis
             Fix For: 1.1.1


The main issue here is if a programmer has decided to override the DNS entries, 
or run the MINA software in a firewalled environment (where DNS is firewalled, 
for instance), MINA will throw an "Unresolved Host" IO Exception at line 66 of 
SocketSessionConfigImpl.java.  This can flat-out be re-created every time by 
simply overriding the DNS entry on the local machine to 127.0.0.1 (resolv.conf).

Because the "initialize()" function simply binds to localhost to retrieve 
socket configuration defaults, there is a better way to approach this.  This 
method has been tested, and is known to work.

Instead of binding to localhost, bind to "127.0.0.1" or "0.0.0.0" as the 
address.  Binding to 127.0.0.1 will do the exact same thing, effectively, as 
looking up localhost.  Ultimately, this will be a FASTER initialization, as it 
needs to resolve "localhost" to an IP.  By giving the system an IP address to 
begin with, we resolve this issue.

What I did was created a local private static final String called 
"LOCALHOST_ADDRESS" in the top area of the class, and set it to 127.0.0.1.  I 
then modified line 66 to use LOCALHOST_ADDRESS, as well as line 73 to use 
LOCALHOST_ADDRESS on the socket.connect.

At the company I work for, we were able to recreate the issue of the code NOT 
working, and the code WORKING.  By modifying the code to use localhost as 
127.0.0.1 or 0.0.0.0, we got around the DNS lookup failure, and MINA fired 
right up happily.

I recommend this fix be added in the next release - both major and minor - for 
MINA.  The company I work for is doing performance testing with MINA now, and 
we may be using it to replace the main socket functionality if all goes well.  
I would like to see this fix in the next milestone release if at all possible.

If you need a patch file provided, I would be more than happy to give one!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to