BUG/MEDIUM: backend: set the connection owner to the session when using alpn.
In connect_server(), if we can't create the mux immediately because we have
to wait until the alpn is negociated, store the session as the connection's
owner. conn_create_mux() expects it to be set, and provides it to the mux
init() method. Failure to do so will result to crashes later if the
connection is private, and even if we didn't do so it would prevent connection
reuse for private connections.
This should fix github issue #651.
diff --git a/src/backend.c b/src/backend.c
index 2a59247..ba96819 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1407,6 +1407,10 @@
srv->mux_proto || s->be->mode != PR_MODE_HTTP))
#endif
init_mux = 1;
+#if defined(USE_OPENSSL) && defined(TLSEXT_TYPE_application_layer_protocol_negotiation)
+ else
+ srv_conn->owner = s->sess;
+#endif
/* process the case where the server requires the PROXY protocol to be sent */
srv_conn->send_proxy_ofs = 0;