[ https://issues.apache.org/jira/browse/DIRMINA-223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Emmanuel Lecharny closed DIRMINA-223. ------------------------------------- > Addition of SocketConnector method to handle socks proxies. > ----------------------------------------------------------- > > Key: DIRMINA-223 > URL: https://issues.apache.org/jira/browse/DIRMINA-223 > Project: MINA > Issue Type: Improvement > Affects Versions: 0.9.4 > Environment: All platforms > Reporter: John Preston > > When using MINA to to establish a SocketConnector behind a firewall it is > necessary to specify socks proxie to use. The SocketConnector can be ammended > as follows: (svn diff) > Index: > core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java > =================================================================== > --- > core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java > (revision 415629) > +++ > core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java > (working copy) > @@ -21,6 +21,7 @@ > import java.io.IOException; > import java.net.ConnectException; > import java.net.InetSocketAddress; > +import java.net.Proxy; > import java.net.SocketAddress; > import java.nio.channels.SelectionKey; > import java.nio.channels.Selector; > @@ -61,6 +62,7 @@ > private final Set managedSessions = Collections.synchronizedSet( new > HashSet() ); > private final SocketIoProcessor[] ioProcessors; > private final int processorCount; > + private final Proxy socketProxy; > > /** > * @noinspection FieldAccessedSynchronizedAndUnsynchronized > @@ -73,9 +75,17 @@ > /** > * Create a connector with a single processing thread > */ > + public SocketConnector(Proxy proxy) > + { > + this( 1, proxy ); > + } > + > + /** > + * Create a connector with a single processing thread > + */ > public SocketConnector() > { > - this( 1 ); > + this( 1, Proxy.NO_PROXY ); > } > > /** > @@ -83,7 +93,7 @@ > * > * @param processorCount Number of processing threads > */ > - public SocketConnector( int processorCount ) > + public SocketConnector( int processorCount, Proxy proxy ) > { > if( processorCount < 1 ) > { > @@ -91,6 +101,7 @@ > } > > this.processorCount = processorCount; > + this.socketProxy = proxy == null ? Proxy.NO_PROXY : proxy; > ioProcessors = new SocketIoProcessor[processorCount]; > > for( int i = 0; i < processorCount; i++ ) > @@ -153,11 +164,12 @@ > boolean success = false; > try > { > - ch = SocketChannel.open(); > - ch.socket().setReuseAddress( true ); > + Socket s = new Socket(socketProxy); > + s.setReuseAddress( true ); > + ch = s.getChannel().open(); > if( localAddress != null ) > { > - ch.socket().bind( localAddress ); > + s.bind( localAddress ); > } > > ch.configureBlocking( false ); > @@ -475,4 +487,4 @@ > this.config = config; > } > } > -} > \ No newline at end of file > +} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.