From: Timo Sirainen Date: Thu, 10 Aug 2023 13:46:07 +0000 (+0300) Subject: doveadm log errors: Fix sorting output X-Git-Tag: 2.4.0~2619 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a0d66bb02dcd729998ec7b4956f8c11746d99c40;p=thirdparty%2Fdovecot%2Fcore.git doveadm log errors: Fix sorting output The log lines from master process weren't always correctly sorted among the log lines from config process. Broken by 1cac11c115383a00f54642ca9d9717f443daaccc --- diff --git a/src/doveadm/doveadm-log.c b/src/doveadm/doveadm-log.c index 6d2b54e138..9e18814684 100644 --- a/src/doveadm/doveadm-log.c +++ b/src/doveadm/doveadm-log.c @@ -413,8 +413,12 @@ static void cmd_log_errors(struct doveadm_cmd_context *cctx) struct log_error error1, error2; i_zero(&error1); i_zero(&error2); - while (cmd_log_error_next(cctx->event, input1, &error1) || - cmd_log_error_next(cctx->event, input2, &error2)) T_BEGIN { + for (;;) { + bool have1 = cmd_log_error_next(cctx->event, input1, &error1); + bool have2 = cmd_log_error_next(cctx->event, input2, &error2); + if (!have1 && !have2) + break; + struct log_error *error; if (error2.text == NULL || (error1.text != NULL && @@ -426,10 +430,11 @@ static void cmd_log_errors(struct doveadm_cmd_context *cctx) error2.prefix = "master: "; error = &error2; } - if (error->timestamp.tv_sec >= min_timestamp) + if (error->timestamp.tv_sec >= min_timestamp) T_BEGIN { cmd_log_error_write(error); + } T_END; i_zero(error); - } T_END; + } i_stream_destroy(&input1); i_stream_destroy(&input2); }