From 0cfe3887deaeb6761211a784a97a1f7daee04270 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 4 Dec 2016 18:59:29 +0100 Subject: [PATCH] MINOR: frontend: retrieve the ALPN name when available Here we try to retrieve the negociated ALPN on the front connection. This will be used to decide whether or not we want to switch to H2. --- src/frontend.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/frontend.c b/src/frontend.c index 4ad3cfe58b..efb6bde2aa 100644 --- a/src/frontend.c +++ b/src/frontend.c @@ -56,6 +56,14 @@ int frontend_accept(struct stream *s) struct connection *conn = objt_conn(sess->origin); struct listener *l = sess->listener; struct proxy *fe = sess->fe; + const char *alpn_str = NULL; + int alpn_len; + + /* check if we're in HTTP mode, directly connected to the connection, + * and with ALPN advertising H2. + */ + if (conn->owner == &s->si[0]) + conn_get_alpn(conn, &alpn_str, &alpn_len); if ((fe->mode == PR_MODE_TCP || fe->mode == PR_MODE_HTTP) && (!LIST_ISEMPTY(&fe->logsrvs))) { -- 2.39.5