activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin MacNaughton (JIRA)" <j...@apache.org>
Subject [jira] Reopened: (AMQ-2094) Can't bind the connector to localhost or actuall IP correctly.
Date Fri, 26 Jun 2009 18:10:07 GMT

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


Mime
View raw message