You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2009/03/05 19:16:15 UTC

svn commit: r750532 - in /activemq/trunk/activemq-core/src: main/java/org/apache/activemq/transport/tcp/ test/java/org/apache/activemq/transport/tcp/ test/resources/org/apache/activemq/transport/tcp/

Author: gtully
Date: Thu Mar  5 18:16:13 2009
New Revision: 750532

URL: http://svn.apache.org/viewvc?rev=750532&view=rev
Log:
AMQ-2094. fix break of org.apache.activemq.transport.tcp.SslContextNBrokerServiceTest where localhost and host name resolve to different interfaces as now the broker just listens on one interface unless ip:0.0.0.0 is used. The connectorUri did nore reflect the socket

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslContextNBrokerServiceTest.java
    activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/transport/tcp/n-brokers-ssl.xml

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java?rev=750532&r1=750531&r2=750532&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java Thu Mar  5 18:16:13 2009
@@ -138,7 +138,7 @@
             throw IOExceptionSupport.create("Failed to bind to server socket: " + bind + " due to: " + e, e);
         }
         try {
-            setConnectURI(new URI(bind.getScheme(), bind.getUserInfo(), resolveHostName(bind.getHost()), serverSocket.getLocalPort(), bind.getPath(), bind.getQuery(), bind
+            setConnectURI(new URI(bind.getScheme(), bind.getUserInfo(), resolveHostName(serverSocket, addr), serverSocket.getLocalPort(), bind.getPath(), bind.getQuery(), bind
                 .getFragment()));
         } catch (URISyntaxException e) {
 
@@ -314,15 +314,22 @@
     }
 
     /**
-     * @param hostName
+     * @param socket 
+     * @param inetAddress
      * @return real hostName
      * @throws UnknownHostException
      */
-    protected String resolveHostName(String hostName) throws UnknownHostException {
-        String result = hostName;
-        // hostname can be null for vm:// protocol ...
-        if (hostName != null && (hostName.equalsIgnoreCase("localhost") || hostName.equals("127.0.0.1"))) {
-            result = InetAddress.getLocalHost().getHostName();
+    protected String resolveHostName(ServerSocket socket, InetAddress bindAddress) throws UnknownHostException {
+        String result = null;
+        if (socket.isBound()) {
+            if (socket.getInetAddress().isAnyLocalAddress()) {
+                // make it more human readable and useful, an alternative to 0.0.0.0
+                result = InetAddress.getLocalHost().getHostName();
+            } else {
+                result = socket.getInetAddress().getCanonicalHostName();
+            }
+        } else {
+            result = bindAddress.getCanonicalHostName();
         }
         return result;
     }

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslContextNBrokerServiceTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslContextNBrokerServiceTest.java?rev=750532&r1=750531&r2=750532&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslContextNBrokerServiceTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslContextNBrokerServiceTest.java Thu Mar  5 18:16:13 2009
@@ -71,6 +71,8 @@
         context.init(null, new TrustManager[] {catcher}, null);
         
         SSLSocketFactory factory = context.getSocketFactory();
+        LOG.info("Connecting to broker: " + broker.getBrokerName()
+                + " on: " + brokerUri.getHost() + ":" + brokerUri.getPort());
         SSLSocket socket = (SSLSocket)factory.createSocket(brokerUri.getHost(), brokerUri.getPort());
         socket.setSoTimeout(5000);
         socket.startHandshake();

Modified: activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/transport/tcp/n-brokers-ssl.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/transport/tcp/n-brokers-ssl.xml?rev=750532&r1=750531&r2=750532&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/transport/tcp/n-brokers-ssl.xml (original)
+++ activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/transport/tcp/n-brokers-ssl.xml Thu Mar  5 18:16:13 2009
@@ -31,7 +31,7 @@
     </amq:sslContext>
     
     <amq:transportConnectors>
-      <amq:transportConnector uri="ssl://localhost:62616" />
+      <amq:transportConnector uri="ssl://0.0.0.0:62616" />
     </amq:transportConnectors>
     
   </amq:broker>