Home / Function/ decodeHeaders() — netty Function Reference

decodeHeaders() — netty Function Reference

Architecture documentation for the decodeHeaders() function in Http3FrameCodec.java from the netty codebase.

Function java Buffer Allocators calls 3 called by 1

Entity Profile

Dependency Diagram

graph TD
  83ad0216_00d7_4331_dd41_48405f09786c["decodeHeaders()"]
  57499e74_1040_f300_12bb_215179e108be["Http3FrameCodec"]
  83ad0216_00d7_4331_dd41_48405f09786c -->|defined in| 57499e74_1040_f300_12bb_215179e108be
  8b0697bd_1098_91ad_7558_7e1c678364c7["decodeFrame()"]
  8b0697bd_1098_91ad_7558_7e1c678364c7 -->|calls| 83ad0216_00d7_4331_dd41_48405f09786c
  a9991e7a_1e1e_f455_19bd_4771a0c28625["decode()"]
  83ad0216_00d7_4331_dd41_48405f09786c -->|calls| a9991e7a_1e1e_f455_19bd_4771a0c28625
  a494429d_99b3_b9af_835d_5ed99ff53bf4["suspended()"]
  83ad0216_00d7_4331_dd41_48405f09786c -->|calls| a494429d_99b3_b9af_835d_5ed99ff53bf4
  bc9d9e09_417f_cc2b_50ed_b48f93b8395c["connectionError()"]
  83ad0216_00d7_4331_dd41_48405f09786c -->|calls| bc9d9e09_417f_cc2b_50ed_b48f93b8395c
  style 83ad0216_00d7_4331_dd41_48405f09786c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/Http3FrameCodec.java lines 398–425

    private boolean decodeHeaders(ChannelHandlerContext ctx, Http3Headers headers, ByteBuf in, int length,
                                  boolean trailer) {
        try {
            Http3HeadersSink sink = new Http3HeadersSink(headers, maxHeaderListSize, true, trailer);
            assert qpackAttributes != null;
            assert readResumptionListener != null;
            if (qpackDecoder.decode(qpackAttributes,
                    ((QuicStreamChannel) ctx.channel()).streamId(), in, length, sink, readResumptionListener)) {
                // Throws exception if detected any problem so far
                sink.finish();
                return true;
            }
            readResumptionListener.suspended();
        } catch (Http3Exception e) {
            connectionError(ctx, e.errorCode(), e.getMessage(), true);
        } catch (QpackException e) {
            // Must be treated as a connection error.
            connectionError(ctx, Http3ErrorCode.QPACK_DECOMPRESSION_FAILED,
                    "Decompression of header block failed.", true);
        } catch (Http3HeadersValidationException e) {
            error = true;
            ctx.fireExceptionCaught(e);
            // We should shutdown the stream with an error.
            // See https://tools.ietf.org/html/draft-ietf-quic-http-32#section-4.1.3
            Http3CodecUtils.streamError(ctx, Http3ErrorCode.H3_MESSAGE_ERROR);
        }
        return false;
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does decodeHeaders() do?
decodeHeaders() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3FrameCodec.java.
Where is decodeHeaders() defined?
decodeHeaders() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3FrameCodec.java at line 398.
What does decodeHeaders() call?
decodeHeaders() calls 3 function(s): connectionError, decode, suspended.
What calls decodeHeaders()?
decodeHeaders() is called by 1 function(s): decodeFrame.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free