]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: ssl: Add ssl_sock_set_alpn().
authorOlivier Houchard <ohouchard@haproxy.com>
Fri, 21 Dec 2018 18:45:40 +0000 (19:45 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 21 Dec 2018 18:53:30 +0000 (19:53 +0100)
Add a new function, ssl_sock_set_alpn(), to be able to change the ALPN
for a connection, instead of relying of the one defined in the SSL_CTX.

include/proto/ssl_sock.h
src/ssl_sock.c

index f04317ae9bcb970ba42f312560538f3b4c2a710d..ce66cdfa1ce991bf62f049af6d10dfa1ab9b9f6b 100644 (file)
@@ -54,7 +54,9 @@ const char *ssl_sock_get_sni(struct connection *conn);
 const char *ssl_sock_get_cert_sig(struct connection *conn);
 const char *ssl_sock_get_cipher_name(struct connection *conn);
 const char *ssl_sock_get_proto_version(struct connection *conn);
+void ssl_sock_set_alpn(struct connection *conn, const unsigned char *, int);
 void ssl_sock_set_servername(struct connection *conn, const char *hostname);
+
 int ssl_sock_get_cert_used_sess(struct connection *conn);
 int ssl_sock_get_cert_used_conn(struct connection *conn);
 int ssl_sock_get_remote_common_name(struct connection *conn,
index b6db4c575d4d2144d3eb3d71da71f4baef9de6ec..d45e3e27be6543f3150753b04dee30aa4774dde2 100644 (file)
@@ -6102,6 +6102,13 @@ ssl_sock_get_dn_oneline(X509_NAME *a, struct buffer *out)
        return 1;
 }
 
+void ssl_sock_set_alpn(struct connection *conn, const unsigned char *alpn, int len)
+{
+#ifdef TLSEXT_TYPE_application_layer_protocol_negotiation
+       SSL_set_alpn_protos(conn->xprt_ctx, alpn, len);
+#endif
+}
+
 /* Sets advertised SNI for outgoing connections. Please set <hostname> to NULL
  * to disable SNI.
  */