aboutsummaryrefslogtreecommitdiffstats
path: root/filter/rule-context.c
diff options
context:
space:
mode:
Diffstat (limited to 'filter/rule-context.c')
-rw-r--r--filter/rule-context.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/filter/rule-context.c b/filter/rule-context.c
index e6a18d078a..5335882932 100644
--- a/filter/rule-context.c
+++ b/filter/rule-context.c
@@ -306,12 +306,22 @@ static int save(RuleContext *f, const char *user)
return 0;
}
-FilterPart *rule_context_find_part(RuleContext *f, char *name)
+FilterPart *rule_context_find_part(RuleContext *f, const char *name)
{
d(printf("find part : "));
return filter_part_find_list(f->parts, name);
}
+FilterPart *rule_context_create_part(RuleContext *f, const char *name)
+{
+ FilterPart *part;
+
+ part = rule_context_find_part(f, name);
+ if (part)
+ part = filter_part_clone(part);
+ return part;
+}
+
FilterPart *rule_context_next_part(RuleContext *f, FilterPart *last)
{
return filter_part_next_list(f->parts, last);
@@ -322,6 +332,11 @@ FilterRule *rule_context_next_rule(RuleContext *f, FilterRule *last)
return filter_rule_next_list(f->rules, last);
}
+FilterRule *rule_context_find_rule(RuleContext *f, const char *name)
+{
+ return filter_rule_find_list(f->rules, name);
+}
+
void rule_context_add_part(RuleContext *f, FilterPart *part)
{
f->parts = g_list_append(f->parts, part);