From f5a66a68dbd0c98349ac50edae9e6a752e3bd0dc Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Sat, 19 Oct 2024 20:54:13 +0200 Subject: [PATCH] lib-sieve: sieve-storage - Only try default storage when script in regular storage is not found --- src/lib-sieve/sieve-storage.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 90a36541d..8b907bb4d 100644 --- a/src/lib-sieve/sieve-storage.c +++ b/src/lib-sieve/sieve-storage.c @@ -1004,6 +1004,12 @@ sieve_storage_active_script_do_get_name(struct sieve_storage *storage, i_assert(storage->v.active_script_get_name != NULL); ret = storage->v.active_script_get_name(storage, name_r); + if (ret < 0) { + if (storage->error_code == SIEVE_ERROR_NOT_FOUND) { + sieve_storage_clear_error(storage); + ret = 0; + } + } if (ret != 0 || (storage->flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0) @@ -1064,7 +1070,7 @@ int sieve_storage_active_script_open(struct sieve_storage *storage, ret = storage->v.active_script_open(storage, &script); i_assert(ret <= 0); - if (ret == 0 || + if (ret == 0 || storage->error_code != SIEVE_ERROR_NOT_FOUND || (storage->flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0) { if (ret < 0) *error_code_r = storage->error_code; -- GitLab