Home / Function/ channelRead() — netty Function Reference

channelRead() — netty Function Reference

Architecture documentation for the channelRead() function in Http3RequestStreamValidationHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  7eb82d3c_d46c_48eb_c142_ec762066c3e2["channelRead()"]
  5d15be70_e004_6097_bf4e_460653eef37b["Http3RequestStreamValidationHandler"]
  7eb82d3c_d46c_48eb_c142_ec762066c3e2 -->|defined in| 5d15be70_e004_6097_bf4e_460653eef37b
  style 7eb82d3c_d46c_48eb_c142_ec762066c3e2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/Http3RequestStreamValidationHandler.java lines 86–121

    @Override
    void channelRead(ChannelHandlerContext ctx, Http3RequestStreamFrame frame) {
        if (frame instanceof Http3PushPromiseFrame) {
            if (server) {
                // Server should not receive a push promise
                // https://quicwg.org/base-drafts/draft-ietf-quic-http.html#name-push_promise
                frameTypeUnexpected(ctx, frame);
            } else {
                ctx.fireChannelRead(frame);
            }
            return;
        }

        if (frame instanceof Http3HeadersFrame) {
            Http3HeadersFrame headersFrame = (Http3HeadersFrame) frame;
            long maybeContentLength = validateHeaderFrameRead(headersFrame, ctx, decodeState);
            if (maybeContentLength >= 0) {
                expectedLength = maybeContentLength;
            } else if (maybeContentLength == INVALID_FRAME_READ) {
                return;
            }
        }

        if (frame instanceof Http3DataFrame) {
            final Http3DataFrame dataFrame = (Http3DataFrame) frame;
            long maybeContentLength = validateDataFrameRead(dataFrame, ctx, expectedLength, seenLength,
                    clientHeadRequest);
            if (maybeContentLength >= 0) {
                seenLength = maybeContentLength;
            } else if (maybeContentLength == INVALID_FRAME_READ) {
                return;
            }
        }

        ctx.fireChannelRead(frame);
    }

Domain

Subdomains

Frequently Asked Questions

What does channelRead() do?
channelRead() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3RequestStreamValidationHandler.java.
Where is channelRead() defined?
channelRead() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3RequestStreamValidationHandler.java at line 86.

Analyze Your Own Codebase

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

Try Supermodel Free