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.
{
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') {