From: Willy Tarreau Date: Thu, 6 Sep 2018 09:48:44 +0000 (+0200) Subject: MINOR: connection: add new function conn_get_proxy() X-Git-Tag: v1.9-dev2~77 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ac98ac1bee3b59602dfd155b821cfd0489bfc3e;p=thirdparty%2Fhaproxy.git MINOR: connection: add new function conn_get_proxy() This function returns the proxy associated to a connection. For front connections it returns the frontend, and for back connections it returns the backend. This will be used to retrieve some configuration parameters from within a mux. --- diff --git a/include/proto/connection.h b/include/proto/connection.h index a683926566..e5b1542d07 100644 --- a/include/proto/connection.h +++ b/include/proto/connection.h @@ -988,6 +988,28 @@ static inline const struct mux_ops *conn_get_best_mux(struct connection *conn, } +/* returns a pointer to the proxy associated with this connection. For a front + * connection it returns a pointer to the frontend ; for a back connection, it + * returns a pointer to the backend. + */ +static inline struct proxy *conn_get_proxy(const struct connection *conn) +{ + struct listener *l; + struct server *s; + + /* check if it's a frontend connection */ + l = objt_listener(conn->target); + if (l) + return l->bind_conf->frontend; + + /* check if it's a backend connection */ + s = objt_server(conn->target); + if (s) + return s->proxy; + + return objt_proxy(conn->target); +} + /* installs the best mux for incoming connection using the upper context * . If the mux protocol is forced, we use it to find the best * mux. Otherwise we use the ALPN name, if any. Returns < 0 on error.