summaryrefslogtreecommitdiff
path: root/libmu_sieve/actions.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmu_sieve/actions.c')
-rw-r--r--libmu_sieve/actions.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/libmu_sieve/actions.c b/libmu_sieve/actions.c
index 077b8cd06..f3ef7f472 100644
--- a/libmu_sieve/actions.c
+++ b/libmu_sieve/actions.c
@@ -511,24 +511,22 @@ mu_sieve_data_type fileinto_args[] = {
};
static int
-perms_tag_checker (mu_sieve_machine_t mach,
- const char *name, mu_list_t tags, mu_list_t args)
+perms_tag_checker (mu_sieve_machine_t mach)
{
- mu_iterator_t itr;
+ size_t i;
int err = 0;
- if (!tags || mu_list_get_iterator (tags, &itr))
+ if (mach->tagcount == 0)
return 0;
- for (mu_iterator_first (itr); !err && !mu_iterator_is_done (itr);
- mu_iterator_next (itr))
+ for (i = 0; i < mach->tagcount; i++)
{
int flag;
const char *p;
- mu_sieve_runtime_tag_t *t;
- mu_iterator_current (itr, (void **)&t);
+ mu_sieve_value_t *t = mu_sieve_get_tag_n (mach, i);
+
if (strcmp (t->tag, "permissions") == 0)
{
- if (mu_parse_stream_perm_string (&flag, t->arg->v.string, &p))
+ if (mu_parse_stream_perm_string (&flag, t->v.string, &p))
{
mu_diag_at_locus (MU_LOG_ERROR, &mach->locus,
_("invalid permissions (near %s)"), p);
@@ -537,7 +535,6 @@ perms_tag_checker (mu_sieve_machine_t mach,
}
}
}
- mu_iterator_destroy (&itr);
return err;
}

Return to:

Send suggestions and report system problems to the System administrator.