X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=rules.c;h=8f232d3e06449f5e6221adacb8675103d1876c7b;hp=756c78dc47c9fa11ab4ff7af282ec0e53b70580c;hb=18f4c6fda6afb912f53ded3112b1f270ddf5ff6c;hpb=410cff5e62db45e8415bf25bf50395b4e7e22482 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"); }