protected boolean isEndOfRequestResponse(Object msg) { if (msg instanceof Http2HeadersFrame) { return ((Http2HeadersFrame) msg).isEndStream(); } if (msg instanceof Http2DataFrame) { return ((Http2DataFrame) msg).isEndStream(); } return false; }
protected boolean isEndOfRequestResponse(Object msg) { if (msg instanceof Http2HeadersFrame) { return ((Http2HeadersFrame) msg).isEndStream(); } if (msg instanceof Http2DataFrame) { return ((Http2DataFrame) msg).isEndStream(); } return false; }
if (!http2Headers.isEndStream()) {
if (headersFrame.isEndStream()) { if (headers.method() == null && status == null) { LastHttpContent last = new DefaultLastHttpContent(Unpooled.EMPTY_BUFFER, validateHeaders);
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof Http2StreamFrame) { // Handle HTTP/2 clear text upgrade request if (msg instanceof Http2HeadersFrame) { Http2HeadersFrame frame = (Http2HeadersFrame) msg; connection.onHeadersRead(ctx, 1, frame.headers(), frame.padding(), frame.isEndStream()); } else if (msg instanceof Http2DataFrame) { Http2DataFrame frame = (Http2DataFrame) msg; connection.onDataRead(ctx, 1, frame.content(), frame.padding(), frame.isEndStream()); } } else { super.channelRead(ctx, msg); } }
headersFrame.isEndStream(), promise); } else { final DefaultHttp2FrameStream stream = (DefaultHttp2FrameStream) headersFrame.stream(); headersFrame.isEndStream(), writePromise); if (writePromise.isDone()) { notifyHeaderWritePromise(writePromise, promise);
headersFrame.isEndStream(), promise); } else { final DefaultHttp2FrameStream stream = (DefaultHttp2FrameStream) headersFrame.stream(); headersFrame.isEndStream(), writePromise); if (writePromise.isDone()) { notifyHeaderWritePromise(writePromise, promise);
headersFrame.isEndStream(), promise); } else { final DefaultHttp2FrameStream stream = (DefaultHttp2FrameStream) headersFrame.stream(); headersFrame.isEndStream(), writePromise); if (writePromise.isDone()) { notifyHeaderWritePromise(writePromise, promise);
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof Http2StreamFrame) { // Handle HTTP/2 clear text upgrade request if (msg instanceof Http2HeadersFrame) { Http2HeadersFrame frame = (Http2HeadersFrame) msg; connection.onHeadersRead(ctx, 1, frame.headers(), frame.padding(), frame.isEndStream()); } else if (msg instanceof Http2DataFrame) { Http2DataFrame frame = (Http2DataFrame) msg; connection.onDataRead(ctx, 1, frame.content(), frame.padding(), frame.isEndStream()); } } else { super.channelRead(ctx, msg); } }
protected boolean isEndOfRequestResponse(Object msg) { if (msg instanceof Http2HeadersFrame) { return ((Http2HeadersFrame) msg).isEndStream(); } if (msg instanceof Http2DataFrame) { return ((Http2DataFrame) msg).isEndStream(); } return false; }
@Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { boolean lastContent = false; if (msg instanceof Http2HeadersFrame) { final Http2HeadersFrame responseHeaders = (Http2HeadersFrame) msg; final Http2Headers headers = responseHeaders.headers(); lastContent = responseHeaders.isEndStream(); accessLog.status(headers.status()) .chunked(true); } if (msg instanceof Http2DataFrame) { final Http2DataFrame data = (Http2DataFrame) msg; lastContent = data.isEndStream(); accessLog.increaseContentLength(data.content().readableBytes()); } if (lastContent) { ctx.write(msg, promise) .addListener(future -> { if (future.isSuccess()) { accessLog.log(); } }); return; } ctx.write(msg, promise); } }
@Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { boolean lastContent = false; if (msg instanceof Http2HeadersFrame) { final Http2HeadersFrame responseHeaders = (Http2HeadersFrame) msg; final Http2Headers headers = responseHeaders.headers(); lastContent = responseHeaders.isEndStream(); accessLog.status(headers.status()) .chunked(true); } if (msg instanceof Http2DataFrame) { final Http2DataFrame data = (Http2DataFrame) msg; lastContent = data.isEndStream(); accessLog.increaseContentLength(data.content().readableBytes()); } if (lastContent) { ctx.write(msg, promise) .addListener(future -> { if (future.isSuccess()) { accessLog.log(); } }); return; } ctx.write(msg, promise); } }
if (headersFrame.isEndStream()) { if (headers.method() == null && status == null) { LastHttpContent last = new DefaultLastHttpContent(Unpooled.EMPTY_BUFFER, validateHeaders);
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof Http2HeadersFrame) { Http2HeadersFrame headersFrame = (Http2HeadersFrame)msg; HttpRequest request; if (headersFrame.isEndStream()) { request = HttpConversionUtil.toFullHttpRequest(-1, headersFrame.headers(), ctx.channel().alloc(), false); } else { request = HttpConversionUtil.toHttpRequest(-1, headersFrame.headers(), false); } HttpToH2Operations ops = new HttpToH2Operations(Connection.from(ctx.channel()), listener, request, headersFrame.headers(), ConnectionInfo.from(ctx.channel() .parent(), readForwardHeaders, request), cookieEncoder, cookieDecoder); ops.bind(); listener.onStateChange(ops, ConnectionObserver.State.CONFIGURED); } ctx.fireChannelRead(msg); }
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof Http2HeadersFrame) { Http2HeadersFrame headersFrame = (Http2HeadersFrame)msg; HttpRequest request; if (headersFrame.isEndStream()) { request = HttpConversionUtil.toFullHttpRequest(-1, headersFrame.headers(), ctx.channel().alloc(), false); } else { request = HttpConversionUtil.toHttpRequest(-1, headersFrame.headers(), false); } HttpToH2Operations ops = new HttpToH2Operations(Connection.from(ctx.channel()), listener, request, headersFrame.headers(), ConnectionInfo.from(ctx.channel() .parent(), readForwardHeaders, request), cookieEncoder, cookieDecoder); ops.bind(); listener.onStateChange(ops, ConnectionObserver.State.CONFIGURED); } ctx.fireChannelRead(msg); }
@Override protected void onInboundNext(ChannelHandlerContext ctx, Object msg) { if (msg instanceof Http2DataFrame) { Http2DataFrame data = (Http2DataFrame) msg; super.onInboundNext(ctx, data.content()); if (data.isEndStream()) { onInboundComplete(); } return; } else if(msg instanceof Http2HeadersFrame) { listener().onStateChange(this, HttpServerState.REQUEST_RECEIVED); if (((Http2HeadersFrame) msg).isEndStream()) { super.onInboundNext(ctx, msg); } return; } super.onInboundNext(ctx, msg); } }
@Override protected void onInboundNext(ChannelHandlerContext ctx, Object msg) { if (msg instanceof Http2DataFrame) { Http2DataFrame data = (Http2DataFrame) msg; super.onInboundNext(ctx, data.content()); if (data.isEndStream()) { onInboundComplete(); } return; } else if(msg instanceof Http2HeadersFrame) { listener().onStateChange(this, HttpServerState.REQUEST_RECEIVED); if (((Http2HeadersFrame) msg).isEndStream()) { super.onInboundNext(ctx, msg); } return; } super.onInboundNext(ctx, msg); } }
headersFrame.isEndStream(), promise); } else { final DefaultHttp2FrameStream stream = (DefaultHttp2FrameStream) headersFrame.stream(); headersFrame.isEndStream(), writePromise); if (writePromise.isDone()) { notifyHeaderWritePromise(writePromise, promise);
headersFrame.isEndStream(), promise); } else { final DefaultHttp2FrameStream stream = (DefaultHttp2FrameStream) headersFrame.stream(); headersFrame.isEndStream(), writePromise); if (writePromise.isDone()) { notifyHeaderWritePromise(writePromise, promise);
headersFrame.isEndStream(), promise); } else { final DefaultHttp2FrameStream stream = (DefaultHttp2FrameStream) headersFrame.stream(); headersFrame.isEndStream(), writePromise); if (writePromise.isDone()) { notifyHeaderWritePromise(writePromise, promise);