From a494f201fcc790262192316f9f9d2305e4fa9052 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Thu, 31 May 2012 02:02:02 -0700 Subject: [PATCH] Call setHandshakeComplete() before the handler replacement (#332) - Contributed by @normanmaurer --- .../codec/http/websocketx/WebSocketClientHandshaker00.java | 4 ++-- .../codec/http/websocketx/WebSocketClientHandshaker08.java | 4 ++-- .../codec/http/websocketx/WebSocketClientHandshaker13.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java index 8b402ec99f..85589729c9 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java @@ -223,10 +223,10 @@ public class WebSocketClientHandshaker00 extends WebSocketClientHandshaker { String subprotocol = response.getHeader(Names.SEC_WEBSOCKET_PROTOCOL); setActualSubprotocol(subprotocol); + setHandshakeComplete(); + channel.pipeline().get(HttpResponseDecoder.class).replace( "ws-decoder", new WebSocket00FrameDecoder(getMaxFramePayloadLength())); - - setHandshakeComplete(); } private static String insertRandomCharacters(String key) { diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java index 3d59e1ffec..266cc745c3 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java @@ -200,10 +200,10 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker { String subprotocol = response.getHeader(Names.SEC_WEBSOCKET_PROTOCOL); setActualSubprotocol(subprotocol); + setHandshakeComplete(); + channel.pipeline().get(HttpResponseDecoder.class).replace( "ws-decoder", new WebSocket08FrameDecoder(false, allowExtensions, getMaxFramePayloadLength())); - - setHandshakeComplete(); } } diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java index a9739f6d56..0ed2f0a7da 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java @@ -200,10 +200,10 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker { String subprotocol = response.getHeader(Names.SEC_WEBSOCKET_PROTOCOL); setActualSubprotocol(subprotocol); + setHandshakeComplete(); + channel.pipeline().get(HttpResponseDecoder.class).replace( "ws-decoder", new WebSocket13FrameDecoder(false, allowExtensions, getMaxFramePayloadLength())); - - setHandshakeComplete(); } }