Home / Function/ createControlStreamIfNeeded() — netty Function Reference

createControlStreamIfNeeded() — netty Function Reference

Architecture documentation for the createControlStreamIfNeeded() function in Http3ConnectionHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  6a2bb6fa_9ef6_0ae2_c7c4_2259ea4acb46["createControlStreamIfNeeded()"]
  af90c570_05df_8deb_a124_cbb127170343["Http3ConnectionHandler"]
  6a2bb6fa_9ef6_0ae2_c7c4_2259ea4acb46 -->|defined in| af90c570_05df_8deb_a124_cbb127170343
  05284f03_3eca_8107_a7f6_7c0bd538e030["handlerAdded()"]
  05284f03_3eca_8107_a7f6_7c0bd538e030 -->|calls| 6a2bb6fa_9ef6_0ae2_c7c4_2259ea4acb46
  2716456f_345f_d8c2_eade_f053fcd79034["channelActive()"]
  2716456f_345f_d8c2_eade_f053fcd79034 -->|calls| 6a2bb6fa_9ef6_0ae2_c7c4_2259ea4acb46
  style 6a2bb6fa_9ef6_0ae2_c7c4_2259ea4acb46 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ConnectionHandler.java lines 97–115

    private void createControlStreamIfNeeded(ChannelHandlerContext ctx) {
        if (!controlStreamCreationInProgress && Http3.getLocalControlStream(ctx.channel()) == null) {
            controlStreamCreationInProgress = true;
            QuicChannel channel = (QuicChannel) ctx.channel();
            // Once the channel became active we need to create an unidirectional stream and write the
            // Http3SettingsFrame to it. This needs to be the first frame on this stream.
            // https://tools.ietf.org/html/draft-ietf-quic-http-32#section-6.2.1.
            channel.createStream(QuicStreamType.UNIDIRECTIONAL, remoteControlStreamHandler)
                    .addListener(f -> {
                        if (!f.isSuccess()) {
                            ctx.fireExceptionCaught(new Http3Exception(Http3ErrorCode.H3_STREAM_CREATION_ERROR,
                                    "Unable to open control stream", f.cause()));
                            ctx.close();
                        } else {
                            Http3.setLocalControlStream(channel, (QuicStreamChannel) f.getNow());
                        }
                    });
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does createControlStreamIfNeeded() do?
createControlStreamIfNeeded() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ConnectionHandler.java.
Where is createControlStreamIfNeeded() defined?
createControlStreamIfNeeded() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3ConnectionHandler.java at line 97.
What calls createControlStreamIfNeeded()?
createControlStreamIfNeeded() is called by 2 function(s): channelActive, handlerAdded.

Analyze Your Own Codebase

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

Try Supermodel Free