[ 
https://issues.apache.org/activemq/browse/AMQ-2094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Colin MacNaughton reopened AMQ-2094:
------------------------------------


I was running some testing with 5.3 today and noticed that specifying localhost 
no longer binds to 0.0.0.0 (meaning that folks who have configured their 
brokers to be accessible from other hosts via localhost will no longer be able 
to connect). From looking at the issue, it seems like the more appropriate fix 
would be:

localhost --> bind to 0.0.0.0 (e.g. still bind to wildcard)
127.0.0.1 --> bind to 127.0.0.0 (only loopback)
actual host name --> bind to actual ip

        host = (host == null || host.length() == 0) ? "localhost" : host;
        InetAddress addr = InetAddress.getByName(host);

        try {
            if (host.trim().equals("localhost")) {
                this.serverSocket = 
serverSocketFactory.createServerSocket(bind.getPort(), backlog);
                addr = InetAddress.getLocalHost();
            } else {
                this.serverSocket = 
serverSocketFactory.createServerSocket(bind.getPort(), backlog, addr);
            }
            configureServerSocket(this.serverSocket);

        }

The question is would the ability of specifying 127.0.0.1 explicitly without it 
resolving to 0.0.0.0 be enough to resolve this?

> Can't bind the connector to localhost or actuall IP correctly.
> --------------------------------------------------------------
>
>                 Key: AMQ-2094
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2094
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Geronimo Integration
>    Affects Versions: 4.1.2, 5.2.0
>         Environment: Windows XP + SUN JDK 1.5
>            Reporter: Shawn Jiang
>            Assignee: David Jencks
>             Fix For: 5.3.0
>
>         Attachments: AMQ-2094.patch
>
>
> ActiveMQ server socket created with TcpTransportServer  can't bind to 
> localhost or actuall IP correctly.  
> * expected result:
> ** localhost  ---> bind to 127.0.0.1
> ** actual IP  ----> bind to  actual IP
> * actual result:
> ** localhost  ---> bind to 0.0.0.0
> ** actual IP  ----> bind to 0.0.0.0
> {code:title="org.apache.activemq.transport.tcp.TcpTransportServer"}  
>       InetAddress addr = InetAddress.getByName(host);
>        try {
>            if (host.trim().equals("localhost") || \
> addr.equals(InetAddress.getLocalHost())) {  //#1 start the socket with 0.0.0.0
>             this.serverSocket = \
> serverSocketFactory.createServerSocket(bind.getPort(), backlog);  }
>            else {
>             //#2  start the socket with the ip spcified in addr.
>             this.serverSocket = \
> serverSocketFactory.createServerSocket(bind.getPort(), backlog, addr);  }
> {code}
> Since if you config the real IP as a host setting, \
> addr.equals(InetAddress.getLocalHost()) will allways be true so that the #1 
> will be used to start the socket with 0.0.0.0 by default.  Which causes a 
> defect of geronimo: https://issues.apache.org/jira/browse/GERONIMO-4404

-- 
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