Author: kwall
Date: Tue Jan 12 12:40:54 2016
New Revision: 1724216
URL: http://svn.apache.org/viewvc?rev=1724216&view=rev
Log:
QPID-6975: Prevent an open connection spinning on the selector after an SSL
close_notify
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java?rev=1724216&r1=1724215&r2=1724216&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnectionTLSDelegate.java
Tue Jan 12 12:40:54 2016
@@ -77,7 +77,7 @@ public class NonBlockingConnectionTLSDel
@Override
public boolean readyForRead()
{
- return _sslEngine.getHandshakeStatus() !=
SSLEngineResult.HandshakeStatus.NEED_WRAP && (_status == null ||
_status.getStatus() != SSLEngineResult.Status.CLOSED);
+ return _sslEngine.getHandshakeStatus() !=
SSLEngineResult.HandshakeStatus.NEED_WRAP;
}
@Override
@@ -95,8 +95,10 @@ public class NonBlockingConnectionTLSDel
_status = _netInputBuffer.decryptSSL(_sslEngine,
_applicationBuffer);
if (_status.getStatus() == SSLEngineResult.Status.CLOSED)
{
- // KW If SSLEngine changes state to CLOSED, what will ever set
_closed to true?
- LOGGER.debug("SSLEngine closed");
+ int remaining = _netInputBuffer.remaining();
+ _netInputBuffer.position(_netInputBuffer.limit());
+ // We'd usually expect no more bytes to be sent following a
close_notify
+ LOGGER.debug("SSLEngine closed, discarded {} byte(s)",
remaining);
}
tasksRun = runSSLEngineTasks(_status);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]