From: Willy Tarreau Date: Mon, 11 Apr 2022 15:54:46 +0000 (+0200) Subject: MINOR: connection: add conn_fd() to retrieve the FD only when it exists X-Git-Tag: v2.6-dev6~137 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=83a966d02593cb9790b19f51b3eb688612cec7d3;p=thirdparty%2Fhaproxy.git MINOR: connection: add conn_fd() to retrieve the FD only when it exists There are plenty of places (particularly in debug code) where we try to dump the connection's FD only when the connection is defined. That's already a pain but now it gets one step further with QUIC because we do *not* want to dump this FD in this case. conn_fd() checks if the connection exists, is ready and is not fd-less, and returns the FD only in this case, otherwise returns -1. This aims at simplifying most of these conditions. --- diff --git a/include/haproxy/connection.h b/include/haproxy/connection.h index 5ce13899a7..f6407ff4b2 100644 --- a/include/haproxy/connection.h +++ b/include/haproxy/connection.h @@ -200,6 +200,16 @@ static inline void conn_stop_tracking(struct connection *conn) conn->flags &= ~CO_FL_XPRT_TRACKED; } +/* returns the connection's FD if the connection exists, its control is ready, + * and the connection has an FD, otherwise -1. + */ +static inline int conn_fd(const struct connection *conn) +{ + if (!conn || !conn_ctrl_ready(conn) || (conn->flags & CO_FL_FDLESS)) + return -1; + return conn->handle.fd; +} + /* read shutdown, called from the rcv_buf/rcv_pipe handlers when * detecting an end of connection. */