diff options
Diffstat (limited to 'java/common/src')
-rw-r--r-- | java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java | 3 | ||||
-rw-r--r-- | java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java b/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java index 2449f457e5..6bae93a1b8 100644 --- a/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java +++ b/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java @@ -33,6 +33,9 @@ public class CommonProperties public static final String IO_NETWORK_TRANSPORT_TIMEOUT_PROP_NAME = "qpid.io_network_transport_timeout"; public static final int IO_NETWORK_TRANSPORT_TIMEOUT_DEFAULT = 60000; + public static final String HANDSHAKE_TIMEOUT_PROP_NAME = "qpid.handshake_timeout"; + public static final int HANDSHAKE_TIMEOUT_DEFAULT = 2; + private CommonProperties() { diff --git a/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java b/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java index 5742667dbe..18a8bf2779 100644 --- a/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java +++ b/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java @@ -50,6 +50,9 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(IoNetworkTransport.class); private static final int TIMEOUT = Integer.getInteger(CommonProperties.IO_NETWORK_TRANSPORT_TIMEOUT_PROP_NAME, CommonProperties.IO_NETWORK_TRANSPORT_TIMEOUT_DEFAULT); + private static final int HANSHAKE_TIMEOUT = Integer.getInteger(CommonProperties.HANDSHAKE_TIMEOUT_PROP_NAME , + CommonProperties.HANDSHAKE_TIMEOUT_DEFAULT); + private Socket _socket; private IoNetworkConnection _connection; @@ -224,7 +227,7 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet { socket = _serverSocket.accept(); socket.setTcpNoDelay(_config.getTcpNoDelay()); - socket.setSoTimeout(_timeout); + socket.setSoTimeout(1000 * HANSHAKE_TIMEOUT); final Integer sendBufferSize = _config.getSendBufferSize(); final Integer receiveBufferSize = _config.getReceiveBufferSize(); @@ -237,6 +240,9 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet final IdleTimeoutTicker ticker = new IdleTimeoutTicker(engine, TIMEOUT); NetworkConnection connection = new IoNetworkConnection(socket, engine, sendBufferSize, receiveBufferSize, _timeout, ticker); + + connection.setMaxReadIdle(HANSHAKE_TIMEOUT); + ticker.setConnection(connection); if(_sslContext != null && socket instanceof SSLSocket) |