Correctly fail all promises SSLENGINE_CLOSED once the engine is closed
Motivation: We should fail all promises with the correct SSLENGINE_CLOSED exception one the engine is closed. We did not fail the current promise with this exception if the ByteBuf was not readable. Modifications: Correctly fail promises. Result: More correct handling of promises if the SSLEngine is closed.
This commit is contained in:
parent
d568cfc14a
commit
382f8eacaf
@ -514,11 +514,6 @@ public class SslHandler extends ByteToMessageDecoder implements ChannelOutboundH
|
||||
}
|
||||
|
||||
SSLEngineResult result = wrap(alloc, engine, buf, out);
|
||||
if (!buf.isReadable()) {
|
||||
promise = pendingUnencryptedWrites.remove();
|
||||
} else {
|
||||
promise = null;
|
||||
}
|
||||
|
||||
if (result.getStatus() == Status.CLOSED) {
|
||||
// SSLEngine has been closed already.
|
||||
@ -526,6 +521,12 @@ public class SslHandler extends ByteToMessageDecoder implements ChannelOutboundH
|
||||
pendingUnencryptedWrites.removeAndFailAll(SSLENGINE_CLOSED);
|
||||
return;
|
||||
} else {
|
||||
if (!buf.isReadable()) {
|
||||
promise = pendingUnencryptedWrites.remove();
|
||||
} else {
|
||||
promise = null;
|
||||
}
|
||||
|
||||
switch (result.getHandshakeStatus()) {
|
||||
case NEED_TASK:
|
||||
runDelegatedTasks();
|
||||
|
Loading…
Reference in New Issue
Block a user