From 541325d00c7078d063ea97333d3c9c64d6b6c7b6 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Tue, 10 Oct 2023 08:06:46 +0000 Subject: Add new logging functions, change method_conv for bsearch Signed-off-by: Laurent Bercot --- src/libtipidee/tipidee_log_request.c | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/libtipidee/tipidee_log_request.c (limited to 'src/libtipidee/tipidee_log_request.c') diff --git a/src/libtipidee/tipidee_log_request.c b/src/libtipidee/tipidee_log_request.c new file mode 100644 index 0000000..666297d --- /dev/null +++ b/src/libtipidee/tipidee_log_request.c @@ -0,0 +1,60 @@ +/* ISC license. */ + +#include + +#include +#include +#include + +#include +#include + +void tipidee_log_request (uint32_t v, tipidee_rql const *rql, char const *referrer, char const *ua, stralloc *sa) +{ + char const *a[14] = { "info: request " } ; + size_t m = 1 ; + size_t start = sa->len ; + size_t refpos = start, uapos = start ; + if (!(v & TIPIDEE_LOG_REQUEST)) return ; + if (!string_quotes(sa, rql->uri.path)) goto eerr ; + if (v & TIPIDEE_LOG_REFERRER) + { + refpos = sa->len ; + if (!string_quotes(sa, referrer) || !stralloc_0(sa)) goto err ; + } + if (v & TIPIDEE_LOG_UA) + { + uapos = sa->len ; + if (!string_quotes(sa, ua) || !stralloc_0(sa)) goto err ; + } + a[m++] = tipidee_method_tostr(rql->m) ; + a[m++] = " host " ; + a[m++] = rql->uri.host ; + a[m++] = " path " ; + a[m++] = sa->s + start ; + if (rql->uri.query) + { + a[m++] = " query " ; + a[m++] = rql->uri.query ; + } + a[m++] = " http 1." ; + a[m++] = rql->http_minor ? "1" : "0" ; + if (v & TIPIDEE_LOG_REFERRER) + { + a[m++] = " referrer " ; + a[m++] = sa->s + refpos ; + } + if (v & TIPIDEE_LOG_UA) + { + a[m++] = " user-agent " ; + a[m++] = sa->s + uapos ; + } + strerr_warnv(a, m) ; + sa->len = start ; + return ; + + err: + sa->len = start ; + eerr: + strerr_warnwu1sys("log request") ; +} -- cgit v1.2.3