activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rajdav...@apache.org
Subject svn commit: r375922 - /incubator/activemq/trunk/activeio/activeio-core/src/main/java/org/apache/activeio/stream/sync/socket/SocketStreamChannelFactory.java
Date Wed, 08 Feb 2006 11:02:41 GMT
Author: rajdavies
Date: Wed Feb  8 03:02:36 2006
New Revision: 375922

URL: http://svn.apache.org/viewcvs?rev=375922&view=rev
Log:
support defining local address and port for a socket - e.g:
ssl://localhost:5666/localhost:60606
where the path (localhost:60606) - defines the local address and local port

For jira issue: AMQ-529

Modified:
    incubator/activemq/trunk/activeio/activeio-core/src/main/java/org/apache/activeio/stream/sync/socket/SocketStreamChannelFactory.java

Modified: incubator/activemq/trunk/activeio/activeio-core/src/main/java/org/apache/activeio/stream/sync/socket/SocketStreamChannelFactory.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activeio/activeio-core/src/main/java/org/apache/activeio/stream/sync/socket/SocketStreamChannelFactory.java?rev=375922&r1=375921&r2=375922&view=diff
==============================================================================
--- incubator/activemq/trunk/activeio/activeio-core/src/main/java/org/apache/activeio/stream/sync/socket/SocketStreamChannelFactory.java
(original)
+++ incubator/activemq/trunk/activeio/activeio-core/src/main/java/org/apache/activeio/stream/sync/socket/SocketStreamChannelFactory.java
Wed Feb  8 03:02:36 2006
@@ -61,7 +61,26 @@
      */
     public StreamChannel openStreamChannel(URI location) throws IOException {
         Socket socket=null;
-        socket = socketFactory.createSocket(location.getHost(), location.getPort());
+        String path=location.getPath();
+        // see if the path is a local URI location
+        if(path!=null&&path.length()>0){
+            if (path.indexOf('/')==0){
+                //strip leading slash
+                path = path.substring(1,path.length());
+            }
+            int localPortIndex=path.indexOf(':');
+            try{
+                int localPort = Integer.parseInt(path.substring((localPortIndex+1),path.length()));
+                InetAddress localAddress = InetAddress.getByName(path);
+                socket = socketFactory.createSocket(location.getHost(), location.getPort(),localAddress,localPort);
+            }catch(Exception e){
+                System.err.println("Could not define local address and port from path: "
+ path);
+                e.printStackTrace();
+            }
+        }
+        if (socket==null){
+            socket = socketFactory.createSocket(location.getHost(), location.getPort());
+        }
         return createStreamChannel(socket);
     }
 



Mime
View raw message