Home / Function/ selectApplicationProtocol() — netty Function Reference

selectApplicationProtocol() — netty Function Reference

Architecture documentation for the selectApplicationProtocol() function in ReferenceCountedOpenSslEngine.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  32e59755_0296_2b44_3000_4e40f149f5d1["selectApplicationProtocol()"]
  df1ad81e_e5bf_85e6_4418_db301b4c3e66["ReferenceCountedOpenSslEngine"]
  32e59755_0296_2b44_3000_4e40f149f5d1 -->|defined in| df1ad81e_e5bf_85e6_4418_db301b4c3e66
  70ac8c99_3ca9_c202_a13f_16dda4571164["handshake()"]
  70ac8c99_3ca9_c202_a13f_16dda4571164 -->|calls| 32e59755_0296_2b44_3000_4e40f149f5d1
  cd0a05c8_b216_ef8c_2253_a5a3425998d7["String()"]
  cd0a05c8_b216_ef8c_2253_a5a3425998d7 -->|calls| 32e59755_0296_2b44_3000_4e40f149f5d1
  style 32e59755_0296_2b44_3000_4e40f149f5d1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslEngine.java lines 2313–2349

    private void selectApplicationProtocol() throws SSLException {
        ApplicationProtocolConfig.SelectedListenerFailureBehavior behavior = apn.selectedListenerFailureBehavior();
        List<String> protocols = apn.protocols();
        String applicationProtocol;
        switch (apn.protocol()) {
            case NONE:
                break;
            // We always need to check for applicationProtocol == null as the remote peer may not support
            // the TLS extension or may have returned an empty selection.
            case ALPN:
                applicationProtocol = SSL.getAlpnSelected(ssl);
                if (applicationProtocol != null) {
                    this.applicationProtocol = selectApplicationProtocol(
                            protocols, behavior, applicationProtocol);
                }
                break;
            case NPN:
                applicationProtocol = SSL.getNextProtoNegotiated(ssl);
                if (applicationProtocol != null) {
                    this.applicationProtocol = selectApplicationProtocol(
                            protocols, behavior, applicationProtocol);
                }
                break;
            case NPN_AND_ALPN:
                applicationProtocol = SSL.getAlpnSelected(ssl);
                if (applicationProtocol == null) {
                    applicationProtocol = SSL.getNextProtoNegotiated(ssl);
                }
                if (applicationProtocol != null) {
                    this.applicationProtocol = selectApplicationProtocol(
                            protocols, behavior, applicationProtocol);
                }
                break;
            default:
                throw new Error("Unexpected apn protocol: " + apn.protocol());
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does selectApplicationProtocol() do?
selectApplicationProtocol() is a function in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslEngine.java.
Where is selectApplicationProtocol() defined?
selectApplicationProtocol() is defined in handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslEngine.java at line 2313.
What calls selectApplicationProtocol()?
selectApplicationProtocol() is called by 2 function(s): String, handshake.

Analyze Your Own Codebase

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

Try Supermodel Free