MINOR: frontend: don't retrieve ALPN on the critical path

It's pointless to read it on each and every accept(), as we only need
it for reporting in debugging mode a few lines later. Let's move this
part to the relevant block.
diff --git a/src/frontend.c b/src/frontend.c
index be40e5f..e03e099 100644
--- a/src/frontend.c
+++ b/src/frontend.c
@@ -56,14 +56,6 @@
 	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 && 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))) {
@@ -102,13 +94,19 @@
 		     (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)))) {
 		char pn[INET6_ADDRSTRLEN];
 		char alpn[16] = "<none>";
+		const char *alpn_str = NULL;
+		int alpn_len;
 
 		conn_get_from_addr(conn);
 
-		if (alpn_str) {
-			int len = MIN(alpn_len, sizeof(alpn) - 1);
-			memcpy(alpn, alpn_str, len);
-			alpn[len] = 0;
+		/* try to report the ALPN value when available (also works for NPN) */
+
+		if (conn && conn->owner == &s->si[0]) {
+			if (conn_get_alpn(conn, &alpn_str, &alpn_len) && alpn_str) {
+				int len = MIN(alpn_len, sizeof(alpn) - 1);
+				memcpy(alpn, alpn_str, len);
+				alpn[len] = 0;
+			}
 		}
 
 		switch (addr_to_str(&conn->addr.from, pn, sizeof(pn))) {