MINOR: stream: add timeout sample fetches

Add cur_server_timeout and cur_tunnel_timeout.

These sample fetches return the current timeout value for a stream. This
is useful to retrieve the value of a timeout which was changed via a
set-timeout rule.
This commit is contained in:
Amaury Denoyelle 2020-12-10 13:43:58 +01:00 committed by Christopher Faulet
parent 12bada5662
commit f7719a25db
2 changed files with 34 additions and 0 deletions

View File

@ -16865,6 +16865,16 @@ be_tunnel_timeout : integer
current backend. This timeout can be overwritten by a "set-timeout" rule. See current backend. This timeout can be overwritten by a "set-timeout" rule. See
also the "cur_tunnel_timeout". also the "cur_tunnel_timeout".
cur_server_timeout : integer
Returns the currently applied server timeout in millisecond for the stream.
In the default case, this will be equal to be_server_timeout unless a
"set-timeout" rule has been applied. See also "be_server_timeout".
cur_tunnel_timeout : integer
Returns the currently applied tunnel timeout in millisecond for the stream.
In the default case, this will be equal to be_tunnel_timeout unless a
"set-timeout" rule has been applied. See also "be_tunnel_timeout".
dst : ip dst : ip
This is the destination IPv4 address of the connection on the client side, This is the destination IPv4 address of the connection on the client side,
which is the address the client connected to. It can be useful when running which is the address the client connected to. It can be useful when running

View File

@ -3457,10 +3457,34 @@ static struct action_kw_list stream_http_keywords = { ILH, {
INITCALL1(STG_REGISTER, http_req_keywords_register, &stream_http_keywords); INITCALL1(STG_REGISTER, http_req_keywords_register, &stream_http_keywords);
static int smp_fetch_cur_server_timeout(const struct arg *args, struct sample *smp, const char *km, void *private)
{
smp->flags = SMP_F_VOL_TXN;
smp->data.type = SMP_T_SINT;
if (!smp->strm)
return 0;
smp->data.u.sint = TICKS_TO_MS(smp->strm->res.rto);
return 1;
}
static int smp_fetch_cur_tunnel_timeout(const struct arg *args, struct sample *smp, const char *km, void *private)
{
smp->flags = SMP_F_VOL_TXN;
smp->data.type = SMP_T_SINT;
if (!smp->strm)
return 0;
smp->data.u.sint = TICKS_TO_MS(smp->strm->tunnel_timeout);
return 1;
}
/* Note: must not be declared <const> as its list will be overwritten. /* Note: must not be declared <const> as its list will be overwritten.
* Please take care of keeping this list alphabetically sorted. * Please take care of keeping this list alphabetically sorted.
*/ */
static struct sample_fetch_kw_list smp_kws = {ILH, { static struct sample_fetch_kw_list smp_kws = {ILH, {
{ "cur_server_timeout", smp_fetch_cur_server_timeout, 0, NULL, SMP_T_SINT, SMP_USE_BKEND, },
{ "cur_tunnel_timeout", smp_fetch_cur_tunnel_timeout, 0, NULL, SMP_T_SINT, SMP_USE_BKEND, },
{ NULL, NULL, 0, 0, 0 }, { NULL, NULL, 0, 0, 0 },
}}; }};