X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=rules.c;h=8f232d3e06449f5e6221adacb8675103d1876c7b;hb=37cb4cb437fd685f31926a4c326ba8afe329e4a6;hp=756c78dc47c9fa11ab4ff7af282ec0e53b70580c;hpb=410cff5e62db45e8415bf25bf50395b4e7e22482;p=project%2Ffirewall3.git diff --git a/rules.c b/rules.c index 756c78d..8f232d3 100644 --- a/rules.c +++ b/rules.c @@ -1,7 +1,7 @@ /* * firewall3 - 3rd OpenWrt UCI firewall implementation * - * Copyright (C) 2013 Jo-Philipp Wich + * Copyright (C) 2013 Jo-Philipp Wich * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -247,13 +247,13 @@ fw3_load_rules(struct fw3_state *state, struct uci_package *p, /* NB: rule family... */ if (rule->_dest) { - setbit(rule->_dest->flags[0], rule->target); - setbit(rule->_dest->flags[1], rule->target); + fw3_setbit(rule->_dest->flags[0], rule->target); + fw3_setbit(rule->_dest->flags[1], rule->target); } else if (need_src_action_chain(rule)) { - setbit(rule->_src->flags[0], fw3_to_src_target(rule->target)); - setbit(rule->_src->flags[1], fw3_to_src_target(rule->target)); + fw3_setbit(rule->_src->flags[0], fw3_to_src_target(rule->target)); + fw3_setbit(rule->_src->flags[1], fw3_to_src_target(rule->target)); } } } @@ -270,7 +270,7 @@ append_chain(struct fw3_ipt_rule *r, struct fw3_rule *rule) { snprintf(chain, sizeof(chain), "zone_%s_notrack", rule->src.name); } - else if (rule->target == FW3_FLAG_MARK) + else if (rule->target == FW3_FLAG_MARK && (rule->_src || rule->src.any)) { snprintf(chain, sizeof(chain), "PREROUTING"); }