diff --git a/src/lib-sieve/sieve-storage-private.h b/src/lib-sieve/sieve-storage-private.h index 375d789521c0a0bbdf781fb22aefd4fef559ec41..81bd130b845d478b47af3cbf159e6bbc54b1fd37 100644 --- a/src/lib-sieve/sieve-storage-private.h +++ b/src/lib-sieve/sieve-storage-private.h @@ -220,6 +220,8 @@ extern const struct sieve_storage sieve_ldap_storage; */ void sieve_storage_set_internal_error(struct sieve_storage *storage); +void sieve_storage_set_not_found_error(struct sieve_storage *storage, + const char *name); void sieve_storage_copy_error(struct sieve_storage *storage, const struct sieve_storage *source); diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 1467d99175e07b285e9e7322bc19ebe3932e71a2..706533b94d771ace6696743021e382d04c6f92b1 100644 --- a/src/lib-sieve/sieve-storage.c +++ b/src/lib-sieve/sieve-storage.c @@ -1592,6 +1592,19 @@ void sieve_storage_set_critical(struct sieve_storage *storage, } } +void sieve_storage_set_not_found_error(struct sieve_storage *storage, + const char *name) +{ + enum sieve_error error_code; + const char *error; + + sieve_storage_clear_error(storage); + name = (name == NULL || *name == '\0' ? storage->script_name : name); + sieve_error_create_script_not_found(name, &error_code, &error); + storage->error_code = error_code; + storage->error = i_strdup(error); +} + const char * sieve_storage_get_last_error(struct sieve_storage *storage, enum sieve_error *error_code_r)