List of usage examples for io.netty.handler.codec.http2 Http2Stream state
State state();
From source file:com.linecorp.armeria.common.http.Http2GoAwayListener.java
License:Apache License
@Override public void onStreamRemoved(Http2Stream stream) { if (stream.id() == 1) { logger.debug("{} HTTP/2 upgrade stream removed: {}", ch, stream.state()); }/*from w w w .j a v a 2 s .c o m*/ }
From source file:com.linecorp.armeria.internal.http.Http2ObjectEncoder.java
License:Apache License
private ChannelFuture validateStream(ChannelHandlerContext ctx, int streamId) { final Http2Stream stream = encoder.connection().stream(streamId); if (stream != null) { switch (stream.state()) { case RESERVED_LOCAL: case OPEN: case HALF_CLOSED_REMOTE: break; default://from w w w . j av a 2s . c o m // The response has been sent already. return ctx.newFailedFuture(ClosedPublisherException.get()); } } else if (encoder.connection().streamMayHaveExisted(streamId)) { // Stream has been removed because it has been closed completely. return ctx.newFailedFuture(ClosedPublisherException.get()); } return null; }
From source file:com.linecorp.armeria.internal.Http2ObjectEncoder.java
License:Apache License
@Nullable private ChannelFuture validateStream(ChannelHandlerContext ctx, int streamId) { final Http2Stream stream = encoder.connection().stream(streamId); if (stream != null) { switch (stream.state()) { case RESERVED_LOCAL: case OPEN: case HALF_CLOSED_REMOTE: break; default://w w w . j ava 2 s . c om // The response has been sent already. return ctx.newFailedFuture(ClosedPublisherException.get()); } } else if (encoder.connection().streamMayHaveExisted(streamId)) { // Stream has been removed because it has been closed completely. return ctx.newFailedFuture(ClosedPublisherException.get()); } return null; }
From source file:com.turo.pushy.apns.AbstractMockApnsServerHandler.java
License:Open Source License
@Override public int onDataRead(final ChannelHandlerContext context, final int streamId, final ByteBuf data, final int padding, final boolean endOfStream) throws Http2Exception { final int bytesProcessed = data.readableBytes() + padding; if (endOfStream) { final Http2Stream stream = this.connection().stream(streamId); // Presumably, we spotted an error earlier and sent a response immediately if the stream is closed on our // side.//from w w w .ja v a 2 s . c o m if (stream.state() == Http2Stream.State.OPEN) { final UUID apnsId = stream.getProperty(this.apnsIdPropertyKey); if (data.readableBytes() <= MAX_CONTENT_LENGTH) { context.channel().writeAndFlush(new AcceptNotificationResponse(streamId)); } else { context.channel().writeAndFlush( new RejectNotificationResponse(streamId, apnsId, ErrorReason.PAYLOAD_TOO_LARGE, null)); } } } return bytesProcessed; }