helpers: fix the set_helper in the rule structure
[project/firewall3.git] / rules.c
diff --git a/rules.c b/rules.c
index ea66771..5e1d5f3 100644 (file)
--- a/rules.c
+++ b/rules.c
@@ -33,7 +33,7 @@ const struct fw3_option fw3_rule_opts[] = {
 
        FW3_OPT("ipset",               setmatch,  rule,     ipset),
        FW3_OPT("helper",              cthelper,  rule,     helper),
-       FW3_OPT("set_helper",          cthelper,  rule,     helper),
+       FW3_OPT("set_helper",          cthelper,  rule,     set_helper),
 
        FW3_LIST("proto",              protocol,  rule,     proto),
 
@@ -436,7 +436,7 @@ print_rule(struct fw3_ipt_handle *handle, struct fw3_state *state,
        }
 
        if (rule->helper.ptr &&
-           rule->helper.ptr->proto.protocol != proto->protocol)
+           !fw3_cthelper_check_proto(rule->helper.ptr, proto))
        {
                info("     ! Skipping protocol %s since helper '%s' does not support it",
                     fw3_protoname(proto), rule->helper.ptr->name);
@@ -444,7 +444,7 @@ print_rule(struct fw3_ipt_handle *handle, struct fw3_state *state,
        }
 
        if (rule->set_helper.ptr &&
-           rule->set_helper.ptr->proto.protocol != proto->protocol)
+           !fw3_cthelper_check_proto(rule->set_helper.ptr, proto))
        {
                info("     ! Skipping protocol %s since helper '%s' does not support it",
                     fw3_protoname(proto), rule->helper.ptr->name);