You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2006/02/08 12:02:41 UTC
svn commit: r375922 -
/incubator/activemq/trunk/activeio/activeio-core/src/main/java/org/apache/activeio/stream/sync/socket/SocketStreamChannelFactory.java
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);
}