From bf969479bb93efd76abb911ba3f4002f5f76e790 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Mon, 28 Oct 2024 23:17:36 +0100 Subject: [PATCH] plugins: lda-sieve: lda-sieve-plugin - Rework error handling in lda_sieve_multiscript_get_scripts() --- src/plugins/lda-sieve/lda-sieve-plugin.c | 34 ++++++++++++++++-------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index c8ee8ca48..464fd0df5 100644 --- a/src/plugins/lda-sieve/lda-sieve-plugin.c +++ b/src/plugins/lda-sieve/lda-sieve-plugin.c @@ -277,6 +277,22 @@ lda_sieve_get_personal_storage(struct sieve_instance *svinst, return 1; } +static void +lda_sieve_multiscript_log_error(struct event *event, + const char *label, const char *location, + enum sieve_error error_code) +{ + switch (error_code) { + case SIEVE_ERROR_TEMP_FAILURE: + e_error(event, "Failed to access %s script from '%s' " + "(temporary failure)", + label, location); + break; + default: + break; + } +} + static int lda_sieve_multiscript_get_scripts(struct sieve_instance *svinst, const char *label, const char *location, @@ -290,8 +306,12 @@ lda_sieve_multiscript_get_scripts(struct sieve_instance *svinst, ret = sieve_script_sequence_create(svinst, location, &sseq, error_code_r); if (ret < 0) { - if (*error_code_r == SIEVE_ERROR_NOT_FOUND) + if (*error_code_r == SIEVE_ERROR_NOT_FOUND) { + *error_code_r = SIEVE_ERROR_NONE; return 0; + } + lda_sieve_multiscript_log_error(svinst->event, label, location, + *error_code_r); return -1; } @@ -301,16 +321,8 @@ lda_sieve_multiscript_get_scripts(struct sieve_instance *svinst, sieve_script_sequence_free(&sseq); if (ret < 0) { - switch (*error_code_r) { - case SIEVE_ERROR_TEMP_FAILURE: - e_error(sieve_get_event(svinst), - "Failed to access %s script from '%s' " - "(temporary failure)", - label, location); - break; - default: - break; - } + lda_sieve_multiscript_log_error(svinst->event, label, location, + *error_code_r); return -1; } return 0; -- GitLab