From: Willy Tarreau Date: Sun, 4 Dec 2016 17:59:29 +0000 (+0100) Subject: MINOR: frontend: retrieve the ALPN name when available X-Git-Tag: v1.8-dev3~266 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0cfe3887deaeb6761211a784a97a1f7daee04270;p=thirdparty%2Fhaproxy.git 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. --- 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))) {