From 5dad5d7f25d8e37f670ef6e5effa0ddcb4ea2924 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Sun, 20 Oct 2024 01:01:55 +0200 Subject: [PATCH] lib-sieve: sieve-storage - Add event parameter to sieve_storage_create() --- src/lib-sieve/plugins/include/ext-include-common.c | 3 ++- src/lib-sieve/sieve-script.c | 2 +- src/lib-sieve/sieve-storage.c | 12 ++++++++---- src/lib-sieve/sieve-storage.h | 3 ++- src/plugins/imap-filter-sieve/imap-filter-sieve.c | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/lib-sieve/plugins/include/ext-include-common.c b/src/lib-sieve/plugins/include/ext-include-common.c index 935285851..59e61825e 100644 --- a/src/lib-sieve/plugins/include/ext-include-common.c +++ b/src/lib-sieve/plugins/include/ext-include-common.c @@ -163,7 +163,8 @@ ext_include_open_script_global(struct sieve_instance *svinst, return -1; } if (extctx->global_storage == NULL && - sieve_storage_create(svinst, extctx->global_location, 0, + sieve_storage_create(svinst, svinst->event, + extctx->global_location, 0, &extctx->global_storage, error_code_r) < 0) return -1; diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c index 8e4fe78b2..445f848e1 100644 --- a/src/lib-sieve/sieve-script.c +++ b/src/lib-sieve/sieve-script.c @@ -130,7 +130,7 @@ int sieve_script_create(struct sieve_instance *svinst, *script_r = NULL; sieve_error_args_init(&error_code_r, NULL); - if (sieve_storage_create(svinst, location, 0, + if (sieve_storage_create(svinst, svinst->event, location, 0, &storage, error_code_r) < 0) return -1; diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 8860c1243..05fe830ef 100644 --- a/src/lib-sieve/sieve-storage.c +++ b/src/lib-sieve/sieve-storage.c @@ -398,7 +398,8 @@ sieve_storage_init(struct sieve_instance *svinst, struct event *event_parent, return ret; } -int sieve_storage_create(struct sieve_instance *svinst, const char *location, +int sieve_storage_create(struct sieve_instance *svinst, struct event *event, + const char *location, enum sieve_storage_flags flags, struct sieve_storage **storage_r, enum sieve_error *error_code_r) @@ -423,7 +424,7 @@ int sieve_storage_create(struct sieve_instance *svinst, const char *location, if (ret == 0) storage_class = &sieve_file_storage; - return sieve_storage_init(svinst, svinst->event, storage_class, + return sieve_storage_init(svinst, event, storage_class, data, flags, FALSE, storage_r, error_code_r); } @@ -577,7 +578,8 @@ int sieve_storage_create_personal(struct sieve_instance *svinst, "Trying default script location '%s'", set_default); - ret = sieve_storage_create(svinst, set_default, 0, + ret = sieve_storage_create(svinst, svinst->event, + set_default, 0, &storage, error_code_r); if (ret < 0) { switch (*error_code_r) { @@ -1669,6 +1671,8 @@ int sieve_storage_sequence_next(struct sieve_storage_sequence *sseq, struct sieve_storage **storage_r, enum sieve_error *error_code_r) { + struct sieve_instance *svinst = sseq->svinst; + *storage_r = NULL; sieve_error_args_init(&error_code_r, NULL); @@ -1676,7 +1680,7 @@ int sieve_storage_sequence_next(struct sieve_storage_sequence *sseq, return 0; sseq->done = TRUE; - if (sieve_storage_create(sseq->svinst, sseq->location, 0, + if (sieve_storage_create(svinst, svinst->event, sseq->location, 0, storage_r, error_code_r) < 0) return -1; return 1; diff --git a/src/lib-sieve/sieve-storage.h b/src/lib-sieve/sieve-storage.h index 61bae1373..0a38ea5d5 100644 --- a/src/lib-sieve/sieve-storage.h +++ b/src/lib-sieve/sieve-storage.h @@ -29,7 +29,8 @@ struct sieve_storage; bool sieve_storage_class_exists(struct sieve_instance *svinst, const char *name); -int sieve_storage_create(struct sieve_instance *svinst, const char *location, +int sieve_storage_create(struct sieve_instance *svinst, struct event *event, + const char *location, enum sieve_storage_flags flags, struct sieve_storage **storage_r, enum sieve_error *error_code_r); diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c index 150f86061..35bd6f615 100644 --- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c +++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c @@ -253,7 +253,7 @@ imap_filter_sieve_get_global_storage(struct imap_filter_sieve_context *sctx, *error_r = "No global Sieve scripts available"; return -1; } - if (sieve_storage_create(svinst, location, 0, + if (sieve_storage_create(svinst, svinst->event, location, 0, &ifsuser->global_storage, &error_code) == 0) { *storage_r = ifsuser->global_storage; return 0; -- GitLab