From f759d3053852c8bd349896e71036f3c4d65836f3 Mon Sep 17 00:00:00 2001 From: norman Date: Wed, 6 Jun 2012 08:06:12 +0200 Subject: [PATCH] Fix starttls support. Now SslHandler should be fully functional again --- .../main/java/io/netty/handler/ssl/SslHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/handler/src/main/java/io/netty/handler/ssl/SslHandler.java b/handler/src/main/java/io/netty/handler/ssl/SslHandler.java index 1bdf9b2728..c283368ef9 100644 --- a/handler/src/main/java/io/netty/handler/ssl/SslHandler.java +++ b/handler/src/main/java/io/netty/handler/ssl/SslHandler.java @@ -168,7 +168,7 @@ public class SslHandler extends StreamToStreamCodec { // TODO: Fix STARTTLS private final boolean startTls; - private boolean firstMessageSend; + private boolean sentFirstMessage; private volatile boolean enableRenegotiation = true; @@ -449,6 +449,15 @@ public class SslHandler extends StreamToStreamCodec { @Override public void encode(ChannelOutboundHandlerContext ctx, ChannelBuffer in, ChannelBuffer out) throws Exception { + + // Do not encrypt the first write request if this handler is + // created with startTLS flag turned on. + if (startTls && !sentFirstMessage) { + sentFirstMessage = true; + out.writeBytes(in); + return; + } + ByteBuffer outNetBuf = bufferPool.acquireBuffer(); boolean success = true; boolean needsUnwrap = false;