]> git.ipfire.org Git - thirdparty/haproxy.git/commit
OPTIM: log: resolve logformat options during postparsing
authorAurelien DARRAGON <adarragon@haproxy.com>
Tue, 30 Apr 2024 15:42:00 +0000 (17:42 +0200)
committerAurelien DARRAGON <adarragon@haproxy.com>
Mon, 6 May 2024 09:13:46 +0000 (11:13 +0200)
commit03ca16f38b23897f440f6fb8d730a96a0b864c9f
tree9ef63f4f77713e5c189ccedde28fa2578002d323
parent05ecba08130b559f6486dc51fdeade91ef2f83e6
OPTIM: log: resolve logformat options during postparsing

In lf_buildctx_prepare(), we perform costly bitwise operations for every
nodes to resolve node options and check for incompatibilities with global
options.

In fact, all this logic may safely be performed during postparsing. This
is what we're doing in this commit. Doing so saves us from unnecessary
runtime checks and could help speedup sess_build_logline().

Since checks are not as costly as before (due to them being performed
during postparsing and not on log building path anymore), an complementary
check for OPT_HTTP vs OPT_ENCODE incompatibity was added:

  encoding is ignored if HTTP option is set, unless HTTP option wasn't
  set globally and encoding was set globally, which means encoding
  takes the precedence

Thanks to this patch, lf_buildctx_prepare() now only takes care of
assigning proper typecast and options settings depending if it's used
from global or per-node context, and prepares CBOR-specific structure
members when CBOR encode option is set.
src/log.c