MINOR: connection: add a .get_alpn() method to xprt_ops

This will be used to retrieve the ALPN negociated over SSL (or possibly
via the proxy protocol later). It's likely that this information should
be stored in the connection itself, but it requires adding an extra
pointer and an extra integer. Thus better rely on the transport layer
to pass this info for now.
diff --git a/include/proto/connection.h b/include/proto/connection.h
index e867446..09467ba 100644
--- a/include/proto/connection.h
+++ b/include/proto/connection.h
@@ -650,6 +650,13 @@
 	return registered_xprt[id];
 }
 
+static inline int conn_get_alpn(const struct connection *conn, const char **str, int *len)
+{
+	if (!conn_xprt_ready(conn) || !conn->xprt->get_alpn)
+		return 0;
+	return conn->xprt->get_alpn(conn, str, len);
+}
+
 #endif /* _PROTO_CONNECTION_H */
 
 /*
diff --git a/include/types/connection.h b/include/types/connection.h
index 60d9772..1e3fb73 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -228,6 +228,7 @@
 	void (*destroy_bind_conf)(struct bind_conf *conf); /* destroy a whole bind_conf */
 	int  (*prepare_srv)(struct server *srv);    /* prepare a server context */
 	void (*destroy_srv)(struct server *srv);    /* destroy a server context */
+	int  (*get_alpn)(const struct connection *conn, const char **str, int *len); /* get application layer name */
 	char name[8];                               /* transport layer name, zero-terminated */
 };