return 0;
}
-int quota_root_add_rule(struct event *event,
+int quota_root_add_rule(struct event *event, pool_t pool,
struct quota_root_settings *root_set,
const char *rule_def, const char **error_r)
{
} else {
rule = array_append_space(&root_set->rules);
rule->mailbox_mask = strcasecmp(mailbox_mask, "INBOX") == 0 ? "INBOX" :
- p_strdup(root_set->set->pool, mailbox_mask);
+ p_strdup(pool, mailbox_mask);
}
}
return ret;
}
-int quota_root_add_warning_rule(struct event *event,
+int quota_root_add_warning_rule(struct event *event, pool_t pool,
struct quota_root_settings *root_set,
const char *rule_def, const char **error_r)
{
return -1;
warning = array_append_space(&root_set->warning_rules);
- warning->command = p_strdup(root_set->set->pool, p+1);
+ warning->command = p_strdup(pool, p+1);
warning->rule = rule;
warning->reverse = reverse;
if (reverse)
}
static int quota_root_add_rules(struct mail_user *user, const char *root_name,
- struct quota_root_settings *root_set,
+ pool_t pool, struct quota_root_settings *root_set,
const char **error_r)
{
const char *rule_name, *rule, *error;
if (rule == NULL)
break;
- if (quota_root_add_rule(user->event, root_set, rule, &error) < 0) {
+ if (quota_root_add_rule(user->event, pool, root_set,
+ rule, &error) < 0) {
*error_r = t_strdup_printf("Invalid rule %s: %s",
rule, error);
return -1;
static int
quota_root_add_warning_rules(struct mail_user *user, const char *root_name,
- struct quota_root_settings *root_set,
+ pool_t pool, struct quota_root_settings *root_set,
const char **error_r)
{
const char *rule_name, *rule, *error;
if (rule == NULL)
break;
- if (quota_root_add_warning_rule(user->event, root_set, rule, &error) < 0) {
+ if (quota_root_add_warning_rule(user->event, pool, root_set,
+ rule, &error) < 0) {
*error_r = t_strdup_printf("Invalid warning rule: %s",
rule);
return -1;
}
root_set = p_new(quota_set->pool, struct quota_root_settings, 1);
- root_set->set = quota_set;
root_set->backend = backend;
if (args != NULL) {
static int
quota_root_add(struct quota_legacy_settings *quota_set, struct mail_user *user,
- const char *env, const char *root_name, const char **error_r)
+ pool_t pool, const char *env, const char *root_name,
+ const char **error_r)
{
struct quota_root_settings *root_set;
const char *set_name, *value;
&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)
+ if (quota_root_add_rules(user, root_name, pool, root_set, error_r) < 0)
return -1;
- if (quota_root_add_warning_rules(user, root_name, root_set, error_r) < 0)
+ if (quota_root_add_warning_rules(user, root_name, quota_set->pool,
+ root_set, error_r) < 0)
return -1;
set_name = t_strconcat(root_name, "_grace", NULL);
if (env == NULL || *env == '\0')
break;
- if (quota_root_add(quota_set, user, env, root_name,
+ if (quota_root_add(quota_set, user, pool, env, root_name,
&error) < 0) {
*error_r = t_strdup_printf("Invalid quota root %s: %s",
root_name, error);
void quota_settings_deinit(struct quota_legacy_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 event *event,
+int quota_root_add_rule(struct event *event, pool_t pool,
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 event *event,
+int quota_root_add_warning_rule(struct event *event, pool_t pool,
struct quota_root_settings *root_set,
const char *rule_def, const char **error_r);