@@ -65,20 +65,23 @@ public class IoSessionInitiator {
6565 private Future <?> reconnectFuture ;
6666
6767 public IoSessionInitiator (Session fixSession , SocketAddress [] socketAddresses ,
68- SocketAddress localAddress , int [] reconnectIntervalInSeconds ,
68+ SocketAddress localAddress , int connectTimeout , int [] reconnectIntervalInSeconds ,
6969 ScheduledExecutorService executor , SessionSettings sessionSettings , NetworkingOptions networkingOptions ,
7070 EventHandlingStrategy eventHandlingStrategy ,
7171 IoFilterChainBuilder userIoFilterChainBuilder , boolean sslEnabled , SSLConfig sslConfig ,
7272 String proxyType , String proxyVersion , String proxyHost , int proxyPort ,
7373 String proxyUser , String proxyPassword , String proxyDomain , String proxyWorkstation ) throws ConfigError {
7474 this .executor = executor ;
75+
76+ final long connectTimeoutMillis = connectTimeout * 1000L ;
7577 final long [] reconnectIntervalInMillis = new long [reconnectIntervalInSeconds .length ];
7678 for (int ii = 0 ; ii != reconnectIntervalInSeconds .length ; ++ii ) {
7779 reconnectIntervalInMillis [ii ] = reconnectIntervalInSeconds [ii ] * 1000L ;
7880 }
81+
7982 try {
8083 reconnectTask = new ConnectTask (sslEnabled , socketAddresses , localAddress ,
81- userIoFilterChainBuilder , fixSession , reconnectIntervalInMillis ,
84+ userIoFilterChainBuilder , fixSession , connectTimeoutMillis , reconnectIntervalInMillis ,
8285 sessionSettings , networkingOptions , eventHandlingStrategy , sslConfig ,
8386 proxyType , proxyVersion , proxyHost , proxyPort , proxyUser , proxyPassword , proxyDomain , proxyWorkstation , log );
8487 } catch (GeneralSecurityException e ) {
@@ -95,6 +98,7 @@ private static class ConnectTask implements Runnable {
9598 private final IoFilterChainBuilder userIoFilterChainBuilder ;
9699 private IoConnector ioConnector ;
97100 private final Session fixSession ;
101+ private final long connectTimeoutMillis ;
98102 private final long [] reconnectIntervalInMillis ;
99103 private final SessionSettings sessionSettings ;
100104 private final NetworkingOptions networkingOptions ;
@@ -120,7 +124,7 @@ private static class ConnectTask implements Runnable {
120124
121125 public ConnectTask (boolean sslEnabled , SocketAddress [] socketAddresses ,
122126 SocketAddress localAddress , IoFilterChainBuilder userIoFilterChainBuilder ,
123- Session fixSession , long [] reconnectIntervalInMillis ,
127+ Session fixSession , long connectTimeoutMillis , long [] reconnectIntervalInMillis ,
124128 SessionSettings sessionSettings , NetworkingOptions networkingOptions , EventHandlingStrategy eventHandlingStrategy , SSLConfig sslConfig ,
125129 String proxyType , String proxyVersion , String proxyHost ,
126130 int proxyPort , String proxyUser , String proxyPassword , String proxyDomain ,
@@ -130,6 +134,7 @@ public ConnectTask(boolean sslEnabled, SocketAddress[] socketAddresses,
130134 this .localAddress = localAddress ;
131135 this .userIoFilterChainBuilder = userIoFilterChainBuilder ;
132136 this .fixSession = fixSession ;
137+ this .connectTimeoutMillis = connectTimeoutMillis ;
133138 this .reconnectIntervalInMillis = reconnectIntervalInMillis ;
134139 this .sessionSettings = sessionSettings ;
135140 this .networkingOptions = networkingOptions ;
@@ -161,9 +166,9 @@ private void setupIoConnector() throws ConfigError, GeneralSecurityException {
161166
162167 ioFilterChainBuilder .addLast (FIXProtocolCodecFactory .FILTER_NAME , new ProtocolCodecFilter (new FIXProtocolCodecFactory ()));
163168
164- IoConnector newConnector ;
165- newConnector = ProtocolFactory .createIoConnector (socketAddresses [nextSocketAddressIndex ]);
169+ IoConnector newConnector = ProtocolFactory .createIoConnector (socketAddresses [nextSocketAddressIndex ]);
166170 networkingOptions .apply (newConnector );
171+ newConnector .setConnectTimeoutMillis (connectTimeoutMillis );
167172 newConnector .setHandler (new InitiatorIoHandler (fixSession , sessionSettings , networkingOptions , eventHandlingStrategy ));
168173 newConnector .setFilterChainBuilder (ioFilterChainBuilder );
169174
0 commit comments