diff --git a/src/lib-sieve/plugins/include/ext-include-common.c b/src/lib-sieve/plugins/include/ext-include-common.c index 93528585114c350ebd5d69f00e299fafd304413a..59e61825e4f4d71ea98a06a97f2319f45360aa10 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 8e4fe78b2ed4fa4c6551db5f873d6771902f3bac..445f848e13266c43cd1175eb8c0c3390cefeaa40 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 8860c12438736791102a2c0e7d52f8f15a94cd82..05fe830efa4288643f739f5ba3b88e4196c11bb8 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 61bae137344f20f194ed1d4d62865acb21d28df4..0a38ea5d57c9de57f94d4d72d5274b18bae20c25 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 150f860615c76c715b2400b2b2c13d213f8063d9..35bd6f615bc5fe40ad73c82a4122d73eec7cce81 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;