MINOR: log: use zero as the request counter if there is no stream

When s==NULL we don't have any assigned request counter. Ideally we
should proceed exactly like when a stream is initialized and assign
a unique value. For now we only place it into a local variable.
This commit is contained in:
Willy Tarreau 2018-09-05 15:52:59 +02:00
parent b8bc52522c
commit 5cacab63e1

View File

@ -1576,6 +1576,7 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
const struct strm_logs *logs = s ? &s->logs : NULL; const struct strm_logs *logs = s ? &s->logs : NULL;
const struct connection *be_conn = s ? cs_conn(objt_cs(s->si[1].end)) : NULL; const struct connection *be_conn = s ? cs_conn(objt_cs(s->si[1].end)) : NULL;
unsigned int s_flags = s ? s->flags : 0; unsigned int s_flags = s ? s->flags : 0;
unsigned int uniq_id = s ? s->uniq_id : 0;
struct buffer chunk; struct buffer chunk;
char *uri; char *uri;
char *spc; char *spc;
@ -2448,13 +2449,13 @@ int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t
case LOG_FMT_COUNTER: // %rt case LOG_FMT_COUNTER: // %rt
if (tmp->options & LOG_OPT_HEXA) { if (tmp->options & LOG_OPT_HEXA) {
iret = snprintf(tmplog, dst + maxsize - tmplog, "%04X", s->uniq_id); iret = snprintf(tmplog, dst + maxsize - tmplog, "%04X", uniq_id);
if (iret < 0 || iret > dst + maxsize - tmplog) if (iret < 0 || iret > dst + maxsize - tmplog)
goto out; goto out;
last_isspace = 0; last_isspace = 0;
tmplog += iret; tmplog += iret;
} else { } else {
ret = ltoa_o(s->uniq_id, tmplog, dst + maxsize - tmplog); ret = ltoa_o(uniq_id, tmplog, dst + maxsize - tmplog);
if (ret == NULL) if (ret == NULL)
goto out; goto out;
tmplog = ret; tmplog = ret;