Local outbound address¶
Get or set the local IP address for outbound connections.
Synopsis¶
#include <ts/ts.h>
-
TSReturnCode TSHttpTxnOutgoingAddrSet(TSHttpTxn txnp, sockaddr const *addr)¶
Description¶
These functions concern the local IP address and port, that is the address and port on the Traffic Server side of outbound connections (network connections from Traffic Server to another socket).
The address and optional the port can be set with TSHttpTxnOutgoingAddrSet()
. This must be
done before the outbound connection is made, that is, earlier than the TS_HTTP_SEND_REQUEST_HDR_HOOK
.
A good choice is the TS_HTTP_POST_REMAP_HOOK
, since it is a hook that is always called, and it
is the latest hook that is called before the connection is made.
The addr must be populated with the IP address and port to be used. If the port is not
relevant it can be set to zero, which means use any available local port. This function returns
TS_SUCCESS
on success and TS_ERROR
on failure.
Even on a successful call to TSHttpTxnOutgoingAddrSet()
, the local IP address may not match
what was passing addr if session sharing
is enabled.
Conversely TSHttpTxnOutgoingAddrGet()
retrieves the local address and must be called in the
TS_HTTP_SEND_REQUEST_HDR_HOOK
or later, after the outbound connection has been established. It returns a
pointer to a sockaddr
which contains the local IP address and port. If there is no valid
outbound connection, addr will be nullptr
. The returned pointer is a transient pointer
and must not be referenced after the callback in which TSHttpTxnOutgoingAddrGet()
was called.