From: Aurelien DARRAGON Date: Fri, 26 Apr 2024 12:23:43 +0000 (+0200) Subject: MINOR: log: add no_escape_map to bypass escape with _lf_encode_bytes() X-Git-Tag: v3.0-dev9~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=162e311a0e8dfb96525af321c000b5a9d5857d19;p=thirdparty%2Fhaproxy.git MINOR: log: add no_escape_map to bypass escape with _lf_encode_bytes() Providing no_escape_map as argument to _lf_encode_bytes() function will make the function skip escaping since the map is empty. This is for convenience, as it might be useful to call lf_encode_chunk() to encoding binary data without escaping it. --- diff --git a/src/log.c b/src/log.c index 07f4b231bc..491304692d 100644 --- a/src/log.c +++ b/src/log.c @@ -95,6 +95,7 @@ static const struct log_fmt_st log_formats[LOG_FORMATS] = { * that the byte should be escaped. Be careful to always pass bytes from 0 to * 255 exclusively to the macros. */ +long no_escape_map[(256/8) / sizeof(long)]; long rfc5424_escape_map[(256/8) / sizeof(long)]; long hdr_encode_map[(256/8) / sizeof(long)]; long url_encode_map[(256/8) / sizeof(long)]; @@ -2847,6 +2848,9 @@ static void init_log() char *tmp; int i; + /* Initialize the no escape map, which may be used to bypass escaping */ + memset(no_escape_map, 0, sizeof(no_escape_map)); + /* Initialize the escape map for the RFC5424 structured-data : '"\]' * inside PARAM-VALUE should be escaped with '\' as prefix. * See https://tools.ietf.org/html/rfc5424#section-6.3.3 for more