From b1cfd1739e975a1090094e6ac40ddf2e3a180269 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Sun, 15 Sep 2024 00:28:34 +0200 Subject: [PATCH] lib-sieve: sieve-storage: sieve-file-script - Use int for sieve_file_script_open_from_filename() status result --- .../storage/file/sieve-file-script-sequence.c | 6 +++--- .../storage/file/sieve-file-script.c | 21 +++++++++++-------- .../storage/file/sieve-file-storage.h | 8 +++---- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/lib-sieve/storage/file/sieve-file-script-sequence.c b/src/lib-sieve/storage/file/sieve-file-script-sequence.c index 8cbc682ec..c21e74d95 100644 --- a/src/lib-sieve/storage/file/sieve-file-script-sequence.c +++ b/src/lib-sieve/storage/file/sieve-file-script-sequence.c @@ -223,9 +223,9 @@ int sieve_file_script_sequence_next(struct sieve_script_sequence *sseq, return 0; for (;;) { - fscript = sieve_file_script_open_from_filename( - fstorage, files[fseq->index++], NULL); - if (fscript != NULL) + if (sieve_file_script_open_from_filename( + fstorage, files[fseq->index++], NULL, + &fscript) == 0) break; if (sseq->storage->error_code != SIEVE_ERROR_NOT_FOUND) break; diff --git a/src/lib-sieve/storage/file/sieve-file-script.c b/src/lib-sieve/storage/file/sieve-file-script.c index 488a56a80..8fddb77d1 100644 --- a/src/lib-sieve/storage/file/sieve-file-script.c +++ b/src/lib-sieve/storage/file/sieve-file-script.c @@ -138,26 +138,29 @@ int sieve_file_script_init_from_filename(struct sieve_file_storage *fstorage, return 0; } -struct sieve_file_script * -sieve_file_script_open_from_filename(struct sieve_file_storage *fstorage, - const char *filename, - const char *scriptname) +int sieve_file_script_open_from_filename(struct sieve_file_storage *fstorage, + const char *filename, + const char *scriptname, + struct sieve_file_script **fscript_r) { struct sieve_file_script *fscript; enum sieve_error error_code; - if (sieve_file_script_init_from_filename(fstorage, filename, - scriptname, &fscript) < 0) - return NULL; + *fscript_r = NULL; + + if (sieve_file_script_init_from_filename(fstorage, filename, scriptname, + &fscript) < 0) + return -1; if (sieve_script_open(&fscript->script, &error_code) < 0) { struct sieve_script *script = &fscript->script; sieve_script_unref(&script); - return NULL; + return -1; } - return fscript; + *fscript_r = fscript; + return 0; } struct sieve_file_script * diff --git a/src/lib-sieve/storage/file/sieve-file-storage.h b/src/lib-sieve/storage/file/sieve-file-storage.h index 764668c8c..7c0d920e4 100644 --- a/src/lib-sieve/storage/file/sieve-file-storage.h +++ b/src/lib-sieve/storage/file/sieve-file-storage.h @@ -140,10 +140,10 @@ int sieve_file_script_init_from_filename(struct sieve_file_storage *fstorage, const char *filename, const char *scriptname, struct sieve_file_script **fscript_r); -struct sieve_file_script * -sieve_file_script_open_from_filename(struct sieve_file_storage *fstorage, - const char *filename, - const char *scriptname); +int sieve_file_script_open_from_filename(struct sieve_file_storage *fstorage, + const char *filename, + const char *scriptname, + struct sieve_file_script **fscript_r); struct sieve_file_script * sieve_file_script_init_from_name(struct sieve_file_storage *fstorage, const char *name); -- GitLab