mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-15 21:59:41 -04:00
BUG/MINOR: log: fix broken '+bin' logformat node option
In12d08cf912("BUG/MEDIUM: log: don't ignore disabled node's options"), while trying to restore historical node option inheritance behavior, I broke the '+bin' logformat node option recently introduced inb7c3d8c87c("MINOR: log: add +bin logformat node option"). Indeed, because of12d08cf912, LOG_OPT_BIN is not set anymore on individual nodes even if it was set globally, making the feature unusable. ('+bin' is also used for binary cbor encoding) What I should have done instead is include LOG_OPT_BIN in the options inherited from global ones. This is what's being done in this commit. Misleading comment was adjusted. It must be backported in 3.0 with12d08cf912.
This commit is contained in:
parent
dc1bca4e9f
commit
0030f722a2
1 changed files with 6 additions and 3 deletions
|
|
@ -969,14 +969,17 @@ static int lf_expr_postcheck_node_opt(struct lf_expr *lf_expr, struct logformat_
|
|||
* Also, ensure we don't mix encoding types, global setting
|
||||
* prevails over per-node one.
|
||||
*
|
||||
* Finally, ignore LOG_OPT_BIN since it is a global-only option
|
||||
* Finally, only consider LOG_OPT_BIN if set globally
|
||||
* (it is a global-only option)
|
||||
*/
|
||||
if (lf_expr->nodes.options & LOG_OPT_ENCODE) {
|
||||
node->options &= ~(LOG_OPT_BIN | LOG_OPT_ENCODE);
|
||||
node->options |= (lf_expr->nodes.options & LOG_OPT_ENCODE);
|
||||
node->options |= (lf_expr->nodes.options & (LOG_OPT_BIN | LOG_OPT_ENCODE));
|
||||
}
|
||||
else
|
||||
else {
|
||||
node->options &= ~LOG_OPT_BIN;
|
||||
node->options |= (lf_expr->nodes.options & LOG_OPT_BIN);
|
||||
}
|
||||
|
||||
_lf_expr_postcheck_node_opt(&node->options, lf_expr->nodes.options);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue