private boolean onHeaders() { ByteBuffer headerBlock = headerBlockFragments.complete(); MetaData metaData = headerBlockParser.parse(headerBlock, headerBlock.remaining()); if (metaData == HeaderBlockParser.SESSION_FAILURE) return false; if (metaData == null || metaData == HeaderBlockParser.STREAM_FAILURE) return true; HeadersFrame frame = new HeadersFrame(getStreamId(), metaData, headerBlockFragments.getPriorityFrame(), headerBlockFragments.isEndStream()); notifyHeaders(frame); return true; }
private boolean onHeaders() { ByteBuffer headerBlock = headerBlockFragments.complete(); MetaData metaData = headerBlockParser.parse(headerBlock, headerBlock.remaining()); if (metaData == HeaderBlockParser.SESSION_FAILURE) return false; if (metaData == null || metaData == HeaderBlockParser.STREAM_FAILURE) return true; HeadersFrame frame = new HeadersFrame(getStreamId(), metaData, headerBlockFragments.getPriorityFrame(), headerBlockFragments.isEndStream()); notifyHeaders(frame); return true; }
@Override protected void emptyBody(ByteBuffer buffer) { if (hasFlag(Flags.END_HEADERS)) { MetaData metaData = headerBlockParser.parse(BufferUtil.EMPTY_BUFFER, 0); onHeaders(0, 0, false, metaData); } else { headerBlockFragments.setStreamId(getStreamId()); headerBlockFragments.setEndStream(isEndStream()); if (hasFlag(Flags.PRIORITY)) connectionFailure(buffer, ErrorCode.PROTOCOL_ERROR.code, "invalid_headers_priority_frame"); } }
@Override protected void emptyBody(ByteBuffer buffer) { if (hasFlag(Flags.END_HEADERS)) { MetaData metaData = headerBlockParser.parse(BufferUtil.EMPTY_BUFFER, 0); onHeaders(0, 0, false, metaData); } else { headerBlockFragments.setStreamId(getStreamId()); headerBlockFragments.setEndStream(isEndStream()); if (hasFlag(Flags.PRIORITY)) connectionFailure(buffer, ErrorCode.PROTOCOL_ERROR.code, "invalid_headers_priority_frame"); } }