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
. (cherry picked from commit 0030f722a2fa574d1e7d90e6f242e4b6a5ace355) Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
This commit is contained in:
parent
a45a8e6235
commit
8a110626bf
@ -930,14 +930,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 New Issue
Block a user