Home / Class/ SniHandler Class — netty Architecture

SniHandler Class — netty Architecture

Architecture documentation for the SniHandler class in SniHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  1c08698d_6de3_27a1_92a5_6a4c169201cb["SniHandler"]
  0ecca599_b137_5d29_50e3_0445d7da9ffc["SniHandler.java"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|defined in| 0ecca599_b137_5d29_50e3_0445d7da9ffc
  b85034c5_db85_9d44_a417_0a5e27381767["SniHandler()"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|method| b85034c5_db85_9d44_a417_0a5e27381767
  fe2c0b63_576a_2b40_02a8_56b949938f9e["String()"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|method| fe2c0b63_576a_2b40_02a8_56b949938f9e
  b4a378e3_41dd_b94a_66a0_fef9d2116b9f["SslContext()"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|method| b4a378e3_41dd_b94a_66a0_fef9d2116b9f
  318ac842_9127_b2ae_db00_9164c3280b5d["lookup()"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|method| 318ac842_9127_b2ae_db00_9164c3280b5d
  89cae714_38ff_f2bb_6caf_33da4c9c86ff["onLookupComplete()"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|method| 89cae714_38ff_f2bb_6caf_33da4c9c86ff
  7a87e629_fa8a_5912_ac94_6fc5173193cc["replaceHandler()"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|method| 7a87e629_fa8a_5912_ac94_6fc5173193cc
  54ada12d_d3c7_7ad6_2e85_50d7465075a4["SslHandler()"]
  1c08698d_6de3_27a1_92a5_6a4c169201cb -->|method| 54ada12d_d3c7_7ad6_2e85_50d7465075a4

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/SniHandler.java lines 37–234

public class SniHandler extends AbstractSniHandler<SslContext> {
    private static final Selection EMPTY_SELECTION = new Selection(null, null);

    protected final AsyncMapping<String, SslContext> mapping;

    private volatile Selection selection = EMPTY_SELECTION;

    /**
     * Creates a SNI detection handler with configured {@link SslContext}
     * maintained by {@link Mapping}
     *
     * @param mapping the mapping of domain name to {@link SslContext}
     */
    public SniHandler(Mapping<? super String, ? extends SslContext> mapping) {
        this(new AsyncMappingAdapter(mapping));
    }

    /**
     * Creates a SNI detection handler with configured {@link SslContext}
     * maintained by {@link Mapping}
     *
     * @param mapping the mapping of domain name to {@link SslContext}
     * @param maxClientHelloLength the maximum length of the client hello message
     * @param handshakeTimeoutMillis the handshake timeout in milliseconds
     */
    public SniHandler(Mapping<? super String, ? extends SslContext> mapping,
                      int maxClientHelloLength, long handshakeTimeoutMillis) {
        this(new AsyncMappingAdapter(mapping), maxClientHelloLength, handshakeTimeoutMillis);
    }

    /**
     * Creates a SNI detection handler with configured {@link SslContext}
     * maintained by {@link DomainNameMapping}
     *
     * @param mapping the mapping of domain name to {@link SslContext}
     */
    public SniHandler(DomainNameMapping<? extends SslContext> mapping) {
        this((Mapping<String, ? extends SslContext>) mapping);
    }

    /**
     * Creates a SNI detection handler with configured {@link SslContext}
     * maintained by {@link AsyncMapping}
     *
     * @param mapping the mapping of domain name to {@link SslContext}
     */
    @SuppressWarnings("unchecked")
    public SniHandler(AsyncMapping<? super String, ? extends SslContext> mapping) {
        this(mapping, 0, 0L);
    }

    /**
     * Creates a SNI detection handler with configured {@link SslContext}
     * maintained by {@link AsyncMapping}
     *
     * @param mapping the mapping of domain name to {@link SslContext}
     * @param maxClientHelloLength the maximum length of the client hello message
     * @param handshakeTimeoutMillis the handshake timeout in milliseconds
     */
    @SuppressWarnings("unchecked")
    public SniHandler(AsyncMapping<? super String, ? extends SslContext> mapping,
                      int maxClientHelloLength, long handshakeTimeoutMillis) {
        super(maxClientHelloLength, handshakeTimeoutMillis);
        this.mapping = (AsyncMapping<String, SslContext>) ObjectUtil.checkNotNull(mapping, "mapping");
    }

    /**
     * Creates a SNI detection handler with configured {@link SslContext}
     * maintained by {@link Mapping}
     *
     * @param mapping the mapping of domain name to {@link SslContext}
     * @param handshakeTimeoutMillis the handshake timeout in milliseconds
     */
    public SniHandler(Mapping<? super String, ? extends SslContext> mapping, long handshakeTimeoutMillis) {
        this(new AsyncMappingAdapter(mapping), handshakeTimeoutMillis);
    }

    /**
     * Creates a SNI detection handler with configured {@link SslContext}
     * maintained by {@link AsyncMapping}
     *

Frequently Asked Questions

What is the SniHandler class?
SniHandler is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/SniHandler.java.
Where is SniHandler defined?
SniHandler is defined in handler/src/main/java/io/netty/handler/ssl/SniHandler.java at line 37.

Analyze Your Own Codebase

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

Try Supermodel Free