summaryrefslogtreecommitdiff
path: root/java/common/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-06-14 20:55:03 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-06-14 20:55:03 +0000
commit7f3aa563c22d0c77afeefbf77d0ec58b1d2be4ec (patch)
tree976609d5121b84ee2c6a469a87d00dad5cee876f /java/common/src
parentf82a4c5bbc89c2924da6f4f291606e4fc06623ee (diff)
downloadqpid-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.java3
-rw-r--r--java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java8
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)