From d4e5cefe53625522dc825b4ab083af42ccf5b0ae Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Mon, 28 Oct 2024 23:37:00 +0100 Subject: [PATCH] lib-sieve: sieve-storage - Split off sieve_storage_get_quota_settings() --- src/lib-sieve/sieve-storage.c | 58 ++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 1b2412a25..c2c5ef4ff 100644 --- a/src/lib-sieve/sieve-storage.c +++ b/src/lib-sieve/sieve-storage.c @@ -369,6 +369,38 @@ int sieve_storage_alloc(struct sieve_instance *svinst, return ret; } +static void sieve_storage_get_quota_settings(struct sieve_storage *storage) +{ + struct sieve_instance *svinst = storage->svinst; + unsigned long long int uint_setting; + size_t size_setting; + + /* Get quota settings if storage driver provides none */ + + if (storage->max_storage == 0 && + sieve_setting_get_size_value(svinst, "sieve_quota_max_storage", + &size_setting)) { + storage->max_storage = size_setting; + } + + if (storage->max_scripts == 0 && + sieve_setting_get_uint_value(svinst, "sieve_quota_max_scripts", + &uint_setting)) { + storage->max_scripts = uint_setting; + } + + if (storage->max_storage > 0) { + e_debug(storage->event, "quota: " + "Storage limit: %llu bytes", + (unsigned long long int) storage->max_storage); + } + if (storage->max_scripts > 0) { + e_debug(storage->event, "quota: " + "Script count limit: %llu scripts", + (unsigned long long int) storage->max_scripts); + } +} + static int sieve_storage_init_real(struct sieve_instance *svinst, struct event *event, const struct sieve_storage *storage_class, @@ -578,8 +610,6 @@ sieve_storage_do_create_personal(struct sieve_instance *svinst, struct sieve_storage *storage = NULL; const struct sieve_storage *sieve_class = NULL; const char *set_sieve, *data; - unsigned long long int uint_setting; - size_t size_setting; int ret; /* Sieve storage location */ @@ -628,30 +658,8 @@ sieve_storage_do_create_personal(struct sieve_instance *svinst, if (storage == NULL) return -1; - /* Get quota settings if storage driver provides none */ - - if (storage->max_storage == 0 && - sieve_setting_get_size_value(svinst, "sieve_quota_max_storage", - &size_setting)) { - storage->max_storage = size_setting; - } - - if (storage->max_scripts == 0 && - sieve_setting_get_uint_value(svinst, "sieve_quota_max_scripts", - &uint_setting)) { - storage->max_scripts = uint_setting; - } + sieve_storage_get_quota_settings(storage); - if (storage->max_storage > 0) { - e_debug(storage->event, "quota: " - "Storage limit: %llu bytes", - (unsigned long long int) storage->max_storage); - } - if (storage->max_scripts > 0) { - e_debug(storage->event, "quota: " - "Script count limit: %llu scripts", - (unsigned long long int) storage->max_scripts); - } *storage_r = storage; return 0; } -- GitLab