BUG/MEDIUM: servers: Make assign_tproxy_address work when ALPN is set.
If an ALPN is set on the server line, then when we reach assign_tproxy_address,
the stream_interface's endpoint will be a connection, not a conn_stream,
so make sure assign_tproxy_address() handles both cases.
This should be backported to 1.9.
diff --git a/src/backend.c b/src/backend.c
index ab5a629..3e32797 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1021,7 +1021,12 @@
struct server *srv = objt_server(s->target);
struct conn_src *src;
struct connection *cli_conn;
- struct connection *srv_conn = cs_conn(objt_cs(s->si[1].end));
+ struct connection *srv_conn;
+
+ if (objt_cs(s->si[1].end))
+ srv_conn = cs_conn(__objt_cs(s->si[1].end));
+ else
+ srv_conn = objt_conn(s->si[1].end);
if (srv && srv->conn_src.opts & CO_SRC_BIND)
src = &srv->conn_src;