diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index c8ee8ca48286db02f075197d98a071686f5244c5..464fd0df56f50e7eee08512be3af0c569493b0fb 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;