MINOR: connection: Add function to get src/dst without updating the connection

conn_get_src() and conn_get_dst() functions are used to fill the source and
destination addresses of a connection. On success, ->src and ->dst
connection fields can be safely used.

For convenience, 2 new functions are added here: conn_src() and conn_dst().
These functions return the corresponding address, as a const and only if it
is already set. Otherwise NULL is returned.
This commit is contained in:
Christopher Faulet 2021-10-22 16:33:28 +02:00
parent e6465b3b75
commit cc6fc26bfe

View File

@ -407,6 +407,22 @@ static inline struct connection *cs_conn(const struct conn_stream *cs)
return cs ? cs->conn : NULL;
}
/* Returns the source address of the connection or NULL if not set */
static inline const struct sockaddr_storage *conn_src(struct connection *conn)
{
if (conn->flags & CO_FL_ADDR_FROM_SET)
return conn->src;
return NULL;
}
/* Returns the destination address of the connection or NULL if not set */
static inline const struct sockaddr_storage *conn_dst(struct connection *conn)
{
if (conn->flags & CO_FL_ADDR_TO_SET)
return conn->dst;
return NULL;
}
/* Retrieves the connection's original source address. Returns non-zero on
* success or zero on failure. The operation is only performed once and the
* address is stored in the connection for future use.