diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2013-06-14 20:55:03 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2013-06-14 20:55:03 +0000 |
commit | 7f3aa563c22d0c77afeefbf77d0ec58b1d2be4ec (patch) | |
tree | 976609d5121b84ee2c6a469a87d00dad5cee876f /java/common/src | |
parent | f82a4c5bbc89c2924da6f4f291606e4fc06623ee (diff) | |
download | qpid-python-7f3aa563c22d0c77afeefbf77d0ec58b1d2be4ec.tar.gz |
QPID-4925 : [Java Broker] Timeout connections which do not complete connection handshake
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1493240 13f79535-47bb-0310-9956-ffa450edef68
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) |