From 3b729848dc075dac0ed449422be96d2eaff51379 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Tue, 13 Nov 2012 20:05:54 +0100 Subject: [PATCH] [#735] Improve the notification of the handshake future --- .../http/websocketx/WebSocketClientHandshaker00.java | 10 +++++++--- .../http/websocketx/WebSocketClientHandshaker08.java | 10 +++++++--- .../http/websocketx/WebSocketClientHandshaker13.java | 10 +++++++--- 3 files changed, 21 insertions(+), 9 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 db6479d044..bfcefafcf1 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 @@ -19,7 +19,6 @@ import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelFutureNotifier; import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.http.DefaultHttpRequest; import io.netty.handler.codec.http.HttpHeaders.Names; @@ -173,7 +172,7 @@ public class WebSocketClientHandshaker00 extends WebSocketClientHandshaker { request.setContent(Unpooled.copiedBuffer(key3)); - ChannelFuture handshakeFuture = channel.newFuture(); + final ChannelFuture handshakeFuture = channel.newFuture(); ChannelFuture future = channel.write(request); future.addListener(new ChannelFutureListener() { @@ -183,9 +182,14 @@ public class WebSocketClientHandshaker00 extends WebSocketClientHandshaker { p.addAfter( p.context(HttpRequestEncoder.class).name(), "ws-encoder", new WebSocket00FrameEncoder()); + + if (future.isSuccess()) { + handshakeFuture.setSuccess(); + } else { + handshakeFuture.setFailure(future.cause()); + } } }); - future.addListener(new ChannelFutureNotifier(handshakeFuture)); return handshakeFuture; } 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 9d43b6c822..f5ea2bb832 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 @@ -18,7 +18,6 @@ package io.netty.handler.codec.http.websocketx; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelFutureNotifier; import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.http.DefaultHttpRequest; import io.netty.handler.codec.http.HttpHeaders.Names; @@ -152,7 +151,7 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker { } } - ChannelFuture handshakeFuture = channel.newFuture(); + final ChannelFuture handshakeFuture = channel.newFuture(); ChannelFuture future = channel.write(request); future.addListener(new ChannelFutureListener() { @@ -162,9 +161,14 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker { p.addAfter( p.context(HttpRequestEncoder.class).name(), "ws-encoder", new WebSocket08FrameEncoder(true)); + + if (future.isSuccess()) { + handshakeFuture.setSuccess(); + } else { + handshakeFuture.setFailure(future.cause()); + } } }); - future.addListener(new ChannelFutureNotifier(handshakeFuture)); return handshakeFuture; } 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 35bfd765dd..588cd4315f 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 @@ -18,7 +18,6 @@ package io.netty.handler.codec.http.websocketx; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelFutureNotifier; import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.http.DefaultHttpRequest; import io.netty.handler.codec.http.HttpHeaders.Names; @@ -152,7 +151,7 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker { } } - ChannelFuture handshakeFuture = channel.newFuture(); + final ChannelFuture handshakeFuture = channel.newFuture(); ChannelFuture future = channel.write(request); future.addListener(new ChannelFutureListener() { @@ -162,9 +161,14 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker { p.addAfter( p.context(HttpRequestEncoder.class).name(), "ws-encoder", new WebSocket13FrameEncoder(true)); + + if (future.isSuccess()) { + handshakeFuture.setSuccess(); + } else { + handshakeFuture.setFailure(future.cause()); + } } }); - future.addListener(new ChannelFutureNotifier(handshakeFuture)); return handshakeFuture; }