/*
* firewall3 - 3rd OpenWrt UCI firewall implementation
*
- * Copyright (C) 2013 Jo-Philipp Wich <jow@openwrt.org>
+ * Copyright (C) 2013 Jo-Philipp Wich <jo@mein.io>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
/* 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));
}
}
}
{
char chain[32];
- snprintf(chain, sizeof(chain), "delegate_output");
+ snprintf(chain, sizeof(chain), "OUTPUT");
if (rule->target == FW3_FLAG_NOTRACK)
{
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), "fwmark");
+ snprintf(chain, sizeof(chain), "PREROUTING");
}
else
{
else
{
if (rule->dest.set)
- snprintf(chain, sizeof(chain), "delegate_forward");
+ snprintf(chain, sizeof(chain), "FORWARD");
else
- snprintf(chain, sizeof(chain), "delegate_input");
+ snprintf(chain, sizeof(chain), "INPUT");
}
}
if (rule->dest.set && !rule->src.set)
{
if (rule->dest.any)
- snprintf(chain, sizeof(chain), "delegate_output");
+ snprintf(chain, sizeof(chain), "OUTPUT");
else
snprintf(chain, sizeof(chain), "zone_%s_output",
rule->dest.name);