From a5c4d0995410e6adf56a4d4fc9e2491a129c1c1e Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Fri, 11 Oct 2024 20:39:37 +0200 Subject: [PATCH] lib-sieve: sieve-extensions - Use int for sieve_extension_reload() status result --- src/lib-sieve/sieve-extensions.c | 19 +++++++++---------- src/lib-sieve/sieve-extensions.h | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/lib-sieve/sieve-extensions.c b/src/lib-sieve/sieve-extensions.c index 58518f4f9..7aee135a8 100644 --- a/src/lib-sieve/sieve-extensions.c +++ b/src/lib-sieve/sieve-extensions.c @@ -296,7 +296,7 @@ sieve_extensions_get_preloaded(struct sieve_instance *svinst, * Extension registry */ -static bool _sieve_extension_load(struct sieve_extension *ext) +static int _sieve_extension_load(struct sieve_extension *ext) { /* Call load handler */ if (ext->def != NULL && ext->def->load != NULL && @@ -304,9 +304,9 @@ static bool _sieve_extension_load(struct sieve_extension *ext) e_error(ext->svinst->event, "failed to load '%s' extension support.", ext->def->name); - return FALSE; + return -1; } - return TRUE; + return 0; } static void _sieve_extension_unload(struct sieve_extension *ext) @@ -403,7 +403,7 @@ _sieve_extension_register(struct sieve_instance *svinst, /* Call load handler if extension was not loaded already */ if (!ext->loaded) { - if (!_sieve_extension_load(ext)) + if (_sieve_extension_load(ext) < 0) return -1; } ext->loaded = TRUE; @@ -471,19 +471,18 @@ int sieve_extension_require(struct sieve_instance *svinst, ext_r); } -bool sieve_extension_reload(const struct sieve_extension *ext) +int sieve_extension_reload(const struct sieve_extension *ext) { struct sieve_extension_registry *ext_reg = ext->svinst->ext_reg; struct sieve_extension *const *mod_ext; int ext_id = ext->id; /* Let's not just cast the 'const' away */ - if (ext_id >= 0 && ext_id < (int) array_count(&ext_reg->extensions)) { - mod_ext = array_idx(&ext_reg->extensions, ext_id); + i_assert(ext_id >= 0 && + ext_id < (int) array_count(&ext_reg->extensions)); - return _sieve_extension_load(*mod_ext); - } - return FALSE; + mod_ext = array_idx(&ext_reg->extensions, ext_id); + return _sieve_extension_load(*mod_ext); } const struct sieve_extension * diff --git a/src/lib-sieve/sieve-extensions.h b/src/lib-sieve/sieve-extensions.h index 7546b6352..c63d3f87e 100644 --- a/src/lib-sieve/sieve-extensions.h +++ b/src/lib-sieve/sieve-extensions.h @@ -133,7 +133,7 @@ int sieve_extension_register(struct sieve_instance *svinst, int sieve_extension_require(struct sieve_instance *svinst, const struct sieve_extension_def *extdef, bool load, const struct sieve_extension **ext_r); -bool sieve_extension_reload(const struct sieve_extension *ext); +int sieve_extension_reload(const struct sieve_extension *ext); void sieve_extension_unregister(const struct sieve_extension *ext); -- GitLab