]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota: Remove quota_settings.event
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 13 Aug 2024 11:28:02 +0000 (14:28 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:39:59 +0000 (10:39 +0200)
It was only used for convenience of having some event in an easily
accessible place. However, it makes the following changes more difficult.

src/plugins/quota/quota-fs.c
src/plugins/quota/quota-maildir.c
src/plugins/quota/quota-private.h
src/plugins/quota/quota-util.c
src/plugins/quota/quota.c
src/plugins/quota/quota.h

index 9600549b7a8bc92710221df7fd5a0fcd3da71ab1..5995a4e2c4a9a21ac6a459a2d99d83f033e33669 100644 (file)
@@ -943,7 +943,8 @@ fs_quota_get_resource(struct quota_root *_root, const char *name,
 
                /* limits have changed, so we'll need to recalculate
                   relative quota rules */
-               quota_root_recalculate_relative_rules(_root->set, bytes_limit, count_limit);
+               quota_root_recalculate_relative_rules(_root->backend.event,
+                       _root->set, bytes_limit, count_limit);
        }
        return QUOTA_GET_RESULT_LIMITED;
 }
index eb2b9689a94b198e29c05773010125ba52333bf0..fb501eeeecd0fa5c7311bfa4f3cb330672828a54 100644 (file)
@@ -483,7 +483,8 @@ static int maildirsize_parse(struct maildir_quota_root *root,
                /* we're using limits from the file. */
                root->root.bytes_limit = message_bytes_limit;
                root->root.count_limit = message_count_limit;
-               quota_root_recalculate_relative_rules(root->root.set,
+               quota_root_recalculate_relative_rules(_root->backend.event,
+                                                     root->root.set,
                                                      message_bytes_limit,
                                                      message_count_limit);
        }
index 305dc89fb9b448c0f24af41737b59eec646c213f..43fbdc0b376f2b2aa239f01aa61992657d845cdd 100644 (file)
@@ -23,7 +23,6 @@ struct quota_settings {
        pool_t pool;
 
        ARRAY(struct quota_root_settings *) root_sets;
-       struct event *event;
        enum quota_alloc_result (*test_alloc)(
                struct quota_transaction_context *ctx, uoff_t size,
                const char **error_r);
@@ -202,7 +201,8 @@ bool quota_root_is_namespace_visible(struct quota_root *root,
 struct quota_rule *
 quota_root_rule_find(struct quota_root_settings *root_set, const char *name);
 
-void quota_root_recalculate_relative_rules(struct quota_root_settings *root_set,
+void quota_root_recalculate_relative_rules(struct event *event,
+                                          struct quota_root_settings *root_set,
                                           int64_t bytes_limit,
                                           int64_t count_limit);
 /* Returns 1 if values were returned successfully, 0 if we're recursing into
@@ -210,7 +210,8 @@ void quota_root_recalculate_relative_rules(struct quota_root_settings *root_set,
 int quota_count(struct quota_root *root, uint64_t *bytes_r, uint64_t *count_r,
                enum quota_get_result *error_result_r, const char **error_r);
 
-int quota_root_parse_grace(struct quota_root_settings *root_set,
+int quota_root_parse_grace(struct event *event,
+                          struct quota_root_settings *root_set,
                           const char *value, const char **error_r);
 bool quota_warning_match(const struct quota_warning_rule *w,
                         uint64_t bytes_before, uint64_t bytes_current,
index aed61f2a3be4b5951f50cd9e16712566c15fe603..c08e2ceee100221fd859506207ce91462e54ba44 100644 (file)
@@ -110,7 +110,8 @@ quota_rule_recalculate_relative_rules(struct quota_rule *rule,
                rule->count_limit = count_limit * rule->count_percent / 100;
 }
 
-void quota_root_recalculate_relative_rules(struct quota_root_settings *root_set,
+void quota_root_recalculate_relative_rules(struct event *event,
+                                          struct quota_root_settings *root_set,
                                           int64_t bytes_limit,
                                           int64_t count_limit)
 {
@@ -130,7 +131,7 @@ void quota_root_recalculate_relative_rules(struct quota_root_settings *root_set,
                                              bytes_limit, 0);
        root_set->last_mail_max_extra_bytes = root_set->grace_rule.bytes_limit;
 
-       e_debug(root_set->set->event,
+       e_debug(event,
                "Quota root %s: Recalculated relative rules with "
                "bytes=%lld count=%lld. Now grace=%"PRIu64, root_set->name,
                (long long)bytes_limit, (long long)count_limit,
@@ -138,7 +139,8 @@ void quota_root_recalculate_relative_rules(struct quota_root_settings *root_set,
 }
 
 static int
-quota_rule_parse_limits(struct quota_root_settings *root_set,
+quota_rule_parse_limits(struct event *event,
+                       struct quota_root_settings *root_set,
                        struct quota_rule *rule, const char *limits,
                        const char *full_rule_def,
                        bool relative_rule, const char **error_r)
@@ -166,7 +168,7 @@ quota_rule_parse_limits(struct quota_root_settings *root_set,
                        }
                        value++;
                } else if (*value != '-' && relative_rule) {
-                       e_warning(root_set->set->event, "quota root %s rule %s: "
+                       e_warning(event, "quota root %s rule %s: "
                                  "obsolete configuration for rule '%s' "
                                  "should be changed to '%s=+%s'",
                                  root_set->name, full_rule_def,
@@ -222,7 +224,8 @@ quota_rule_parse_limits(struct quota_root_settings *root_set,
        return 0;
 }
 
-int quota_root_add_rule(struct quota_root_settings *root_set,
+int quota_root_add_rule(struct event *event,
+                       struct quota_root_settings *root_set,
                        const char *rule_def, const char **error_r)
 {
        struct quota_rule *rule;
@@ -254,8 +257,7 @@ int quota_root_add_rule(struct quota_root_settings *root_set,
 
        if (strcmp(p, "ignore") == 0) {
                rule->ignore = TRUE;
-               e_debug(root_set->set->event,
-                       "Quota rule: root=%s mailbox=%s ignored",
+               e_debug(event, "Quota rule: root=%s mailbox=%s ignored",
                        root_set->name, mailbox_mask);
                return 0;
        }
@@ -270,18 +272,18 @@ int quota_root_add_rule(struct quota_root_settings *root_set,
        } else {
                bool relative_rule = rule != &root_set->default_rule;
 
-               if (quota_rule_parse_limits(root_set, rule, p, rule_def,
+               if (quota_rule_parse_limits(event, root_set, rule, p, rule_def,
                                            relative_rule, error_r) < 0)
                        ret = -1;
        }
 
-       quota_root_recalculate_relative_rules(root_set,
+       quota_root_recalculate_relative_rules(event, root_set,
                                              root_set->default_rule.bytes_limit,
                                              root_set->default_rule.count_limit);
        const char *rule_plus =
                rule == &root_set->default_rule ? "" : "+";
 
-       e_debug(root_set->set->event, "Quota rule: root=%s mailbox=%s "
+       e_debug(event, "Quota rule: root=%s mailbox=%s "
                "bytes=%s%lld%s messages=%s%lld%s",
                root_set->name, mailbox_mask,
                rule->bytes_limit > 0 ? rule_plus : "",
@@ -295,7 +297,8 @@ int quota_root_add_rule(struct quota_root_settings *root_set,
        return ret;
 }
 
-int quota_root_add_warning_rule(struct quota_root_settings *root_set,
+int quota_root_add_warning_rule(struct event *event,
+                               struct quota_root_settings *root_set,
                                const char *rule_def, const char **error_r)
 {
        struct quota_warning_rule *warning;
@@ -323,7 +326,7 @@ int quota_root_add_warning_rule(struct quota_root_settings *root_set,
        }
 
        i_zero(&rule);
-       ret = quota_rule_parse_limits(root_set, &rule, t_strdup_until(q, p),
+       ret = quota_rule_parse_limits(event, root_set, &rule, t_strdup_until(q, p),
                                      rule_def, FALSE, error_r);
        if (ret < 0)
                return -1;
@@ -335,10 +338,10 @@ int quota_root_add_warning_rule(struct quota_root_settings *root_set,
        if (reverse)
                root_set->have_reverse_warnings = TRUE;
 
-       quota_root_recalculate_relative_rules(root_set,
+       quota_root_recalculate_relative_rules(event, root_set,
                                              root_set->default_rule.bytes_limit,
                                              root_set->default_rule.count_limit);
-       e_debug(root_set->set->event, "Quota warning: bytes=%"PRId64"%s "
+       e_debug(event, "Quota warning: bytes=%"PRId64"%s "
                "messages=%"PRId64"%s reverse=%s command=%s",
                warning->rule.bytes_limit,
                warning->rule.bytes_percent == 0 ? "" :
@@ -351,7 +354,8 @@ int quota_root_add_warning_rule(struct quota_root_settings *root_set,
        return 0;
 }
 
-int quota_root_parse_grace(struct quota_root_settings *root_set,
+int quota_root_parse_grace(struct event *event,
+                          struct quota_root_settings *root_set,
                           const char *value, const char **error_r)
 {
        const char *p;
@@ -369,7 +373,7 @@ int quota_root_parse_grace(struct quota_root_settings *root_set,
        quota_rule_recalculate_relative_rules(&root_set->grace_rule,
                root_set->default_rule.bytes_limit, 0);
        root_set->last_mail_max_extra_bytes = root_set->grace_rule.bytes_limit;
-       e_debug(root_set->set->event, "Quota grace: root=%s bytes=%lld%s",
+       e_debug(event, "Quota grace: root=%s bytes=%lld%s",
                root_set->name, (long long)root_set->grace_rule.bytes_limit,
                root_set->grace_rule.bytes_percent == 0 ? "" :
                t_strdup_printf(" (%u%%)", root_set->grace_rule.bytes_percent));
index 34fce4a6d8c3b234567111587f5a109ac6eae89b..b0556b01cc421a6d221a0c91fed406ad24d056ec 100644 (file)
@@ -132,7 +132,7 @@ static int quota_root_add_rules(struct mail_user *user, const char *root_name,
                if (rule == NULL)
                        break;
 
-               if (quota_root_add_rule(root_set, rule, &error) < 0) {
+               if (quota_root_add_rule(user->event, root_set, rule, &error) < 0) {
                        *error_r = t_strdup_printf("Invalid rule %s: %s",
                                                   rule, error);
                        return -1;
@@ -156,7 +156,7 @@ quota_root_add_warning_rules(struct mail_user *user, const char *root_name,
                if (rule == NULL)
                        break;
 
-               if (quota_root_add_warning_rule(root_set, rule, &error) < 0) {
+               if (quota_root_add_warning_rule(user->event, root_set, rule, &error) < 0) {
                        *error_r = t_strdup_printf("Invalid warning rule: %s",
                                                   rule);
                        return -1;
@@ -167,7 +167,8 @@ quota_root_add_warning_rules(struct mail_user *user, const char *root_name,
 }
 
 static int
-quota_root_settings_init(struct quota_settings *quota_set, const char *root_def,
+quota_root_settings_init(struct event *event,
+                        struct quota_settings *quota_set, const char *root_def,
                         struct quota_root_settings **set_r,
                         const char **error_r)
 {
@@ -212,7 +213,7 @@ quota_root_settings_init(struct quota_settings *quota_set, const char *root_def,
        }
        root_set->args = p_strdup(quota_set->pool, args);
 
-       e_debug(quota_set->event, "Quota root: name=%s backend=%s args=%s",
+       e_debug(event, "Quota root: name=%s backend=%s args=%s",
                root_set->name, backend_name, args == NULL ? "" : args);
 
        p_array_init(&root_set->rules, quota_set->pool, 4);
@@ -229,7 +230,8 @@ quota_root_add(struct quota_settings *quota_set, struct mail_user *user,
        struct quota_root_settings *root_set;
        const char *set_name, *value;
 
-       if (quota_root_settings_init(quota_set, env, &root_set, error_r) < 0)
+       if (quota_root_settings_init(user->event, quota_set, env,
+                                    &root_set, error_r) < 0)
                return -1;
        root_set->set_name = p_strdup(quota_set->pool, root_name);
        if (quota_root_add_rules(user, root_name, root_set, error_r) < 0)
@@ -239,7 +241,7 @@ quota_root_add(struct quota_settings *quota_set, struct mail_user *user,
 
        set_name = t_strconcat(root_name, "_grace", NULL);
        value = mail_user_plugin_getenv(user, set_name);
-       if (quota_root_parse_grace(root_set, value, error_r) < 0) {
+       if (quota_root_parse_grace(user->event, root_set, value, error_r) < 0) {
                *error_r = t_strdup_printf("Invalid %s value '%s': %s",
                                           set_name, value, *error_r);
                return -1;
@@ -282,7 +284,6 @@ int quota_user_read_settings(struct mail_user *user,
        pool = pool_alloconly_create("quota settings", 2048);
        quota_set = p_new(pool, struct quota_settings, 1);
        quota_set->pool = pool;
-       quota_set->event = event_create(user->event);
        quota_set->test_alloc = quota_default_test_alloc;
        quota_set->quota_exceeded_msg =
                mail_user_plugin_getenv(user, "quota_exceeded_message");
@@ -337,7 +338,6 @@ int quota_user_read_settings(struct mail_user *user,
                                   &error) < 0) {
                        *error_r = t_strdup_printf("Invalid quota root %s: %s",
                                                   root_name, error);
-                       event_unref(&quota_set->event);
                        pool_unref(&pool);
                        return -1;
                }
@@ -346,7 +346,6 @@ int quota_user_read_settings(struct mail_user *user,
        }
        if (quota_set->max_mail_size == 0 &&
            array_count(&quota_set->root_sets) == 0) {
-               event_unref(&quota_set->event);
                pool_unref(&pool);
                return 0;
        }
@@ -361,7 +360,6 @@ void quota_settings_deinit(struct quota_settings **_quota_set)
 
        *_quota_set = NULL;
 
-       event_unref(&quota_set->event);
        pool_unref(&quota_set->pool);
 }
 
index b08ae9e11c585b79c7b33c74c417fd59566c548e..e91cb236d00cabc7dabad25448e178be1206d574 100644 (file)
@@ -77,11 +77,13 @@ int quota_user_read_settings(struct mail_user *user,
 void quota_settings_deinit(struct quota_settings **quota_set);
 
 /* Add a new rule too the quota root. Returns 0 if ok, -1 if rule is invalid. */
-int quota_root_add_rule(struct quota_root_settings *root_set,
+int quota_root_add_rule(struct event *event,
+                       struct quota_root_settings *root_set,
                        const char *rule_def, const char **error_r);
 /* Add a new warning rule for the quota root. Returns 0 if ok, -1 if rule is
    invalid. */
-int quota_root_add_warning_rule(struct quota_root_settings *root_set,
+int quota_root_add_warning_rule(struct event *event,
+                               struct quota_root_settings *root_set,
                                const char *rule_def, const char **error_r);
 
 /* Initialize quota for the given user. Returns 0 and quota_r on success,