MINOR: log: detach prepare from parse message

This commit adds a new function `prepare_log_message` to initialize log
message buffers and metadata. This function sets default values for log
level and facility, ensuring a consistent starting state for log
processing. It also prepares the buffer and metadata fields, simplifying
subsequent log parsing and construction.
This commit is contained in:
Roberto Moreda 2025-03-02 22:02:25 +01:00 committed by Aurelien DARRAGON
parent 834e9af877
commit c25e6f5efa

View File

@ -5375,6 +5375,24 @@ void app_log(struct list *loggers, struct buffer *tag, int level, const char *fo
__send_log(NULL, loggers, tag, level, logline, data_len, default_rfc5424_sd_log_format, 2); __send_log(NULL, loggers, tag, level, logline, data_len, default_rfc5424_sd_log_format, 2);
} }
/*
* This function sets up the initial state for a log message by preparing
* the buffer, setting default values for the log level and facility, and
* initializing metadata fields. It is used before parsing or constructing
* a log message to ensure all fields are in a known state.
*/
static void prepare_log_message(char *buf, size_t buflen, int *level, int *facility,
struct ist *metadata, char **message, size_t *size)
{
*level = *facility = -1;
*message = buf;
*size = buflen;
memset(metadata, 0, LOG_META_FIELDS*sizeof(struct ist));
}
/* /*
* This function parse a received log message <buf>, of size <buflen> * This function parse a received log message <buf>, of size <buflen>
* it fills <level>, <facility> and <metadata> depending of the detected * it fills <level>, <facility> and <metadata> depending of the detected
@ -5391,13 +5409,6 @@ void parse_log_message(char *buf, size_t buflen, int *level, int *facility,
char *p; char *p;
int fac_level = 0; int fac_level = 0;
*level = *facility = -1;
*message = buf;
*size = buflen;
memset(metadata, 0, LOG_META_FIELDS*sizeof(struct ist));
p = buf; p = buf;
if (*size < 2 || *p != '<') if (*size < 2 || *p != '<')
return; return;
@ -5745,6 +5756,8 @@ void syslog_fd_handler(int fd)
_HA_ATOMIC_INC(&cum_log_messages); _HA_ATOMIC_INC(&cum_log_messages);
proxy_inc_fe_req_ctr(l, l->bind_conf->frontend, 0); proxy_inc_fe_req_ctr(l, l->bind_conf->frontend, 0);
prepare_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size);
parse_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size); parse_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size);
process_send_log(NULL, &l->bind_conf->frontend->loggers, level, facility, metadata, message, size); process_send_log(NULL, &l->bind_conf->frontend->loggers, level, facility, metadata, message, size);
@ -5857,6 +5870,8 @@ static void syslog_io_handler(struct appctx *appctx)
_HA_ATOMIC_INC(&cum_log_messages); _HA_ATOMIC_INC(&cum_log_messages);
proxy_inc_fe_req_ctr(l, frontend, 0); proxy_inc_fe_req_ctr(l, frontend, 0);
prepare_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size);
parse_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size); parse_log_message(buf->area, buf->data, &level, &facility, metadata, &message, &size);
process_send_log(NULL, &frontend->loggers, level, facility, metadata, message, size); process_send_log(NULL, &frontend->loggers, level, facility, metadata, message, size);