MINOR: sample: also support retrieving fc.timer.handshake without a stream

Some timers, like the handshake timer, are stored in the session and are
only copied to the logs struct when a stream is created. But this means
we can't measure it without a stream, nor store it once for all in a
variable at session creation time. Let's extend the sample fetch function
to retrieve it from the session when no stream is present. The doc did not
mention this limitation so this could almost be considered as a bug.
This commit is contained in:
Willy Tarreau 2026-01-11 15:13:42 +01:00
parent 875bbaa7fc
commit 880bbeeda4

View File

@ -5381,12 +5381,20 @@ static int smp_fetch_conn_timers(const struct arg *args, struct sample *smp, con
{
struct strm_logs *logs;
if (!smp->strm)
return 0;
smp->data.type = SMP_T_SINT;
smp->flags = 0;
if (!smp->strm) {
/* no stream: only fc.timer.handshake is available via
* the session.
*/
if (kw[0] == 'f' && kw[9] == 'h') {
smp->data.u.sint = smp->sess->t_handshake;
return 1;
}
return 0;
}
logs = &smp->strm->logs;
if (kw[0] == 'b') {