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.
This commit is contained in:
Willy Tarreau 2022-04-11 17:54:46 +02:00
parent c78a9698ef
commit 83a966d025

View File

@ -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.
*/