Add a new flag to the ssl_sock_ctx, to be set as soon as the ALPN has
been negociated.
This happens before the handshake has been completed, and that
information will let us know that, when we receive early data, if the
ALPN has been negociated, then we can immediately create a mux, as the
ALPN will tell us which mux to use.
#define SSL_SOCK_F_KTLS_SEND (1 << 2) /* kTLS send is configured on that socket */
#define SSL_SOCK_F_KTLS_RECV (1 << 3) /* kTLS receive is configure on that socket */
#define SSL_SOCK_F_CTRL_SEND (1 << 4) /* We want to send a kTLS control message for that socket */
+#define SSL_SOCK_F_HAS_ALPN (1 << 5) /* An ALPN has been negociated */
struct ssl_sock_ctx {
struct connection *conn;
unsigned int server_len, void *arg)
{
struct ssl_bind_conf *conf = arg;
+ struct connection *conn;
+ struct ssl_sock_ctx *ctx;
+
+ conn = SSL_get_ex_data(s, ssl_app_data_index);
+ ctx = __conn_get_ssl_sock_ctx(conn);
+
+
#ifdef USE_QUIC
struct quic_conn *qc = SSL_get_ex_data(s, ssl_qc_app_data_index);
#endif
}
#endif
+ ctx->flags |= SSL_SOCK_F_HAS_ALPN;
return SSL_TLSEXT_ERR_OK;
}
#endif