continue;
}
else if (forward->src.set && !forward->src.any &&
- !(forward->_src = fw3_lookup_zone(state, forward->src.name)))
+ !(forward->_src = fw3_lookup_zone(state, forward->src.name, false)))
{
warn_elem(e, "refers to not existing zone '%s'", forward->src.name);
fw3_free_forward(forward);
continue;
}
else if (forward->dest.set && !forward->dest.any &&
- !(forward->_dest = fw3_lookup_zone(state, forward->dest.name)))
+ !(forward->_dest = fw3_lookup_zone(state, forward->dest.name, false)))
{
warn_elem(e, "refers to not existing zone '%s'", forward->dest.name);
fw3_free_forward(forward);
if (forward->_dest)
{
- forward->_dest->has_dest_target |= (1 << FW3_TARGET_ACCEPT);
+ setbit(forward->_dest->dst_flags, FW3_TARGET_ACCEPT);
if (forward->_src &&
(forward->_src->conntrack || forward->_dest->conntrack))
if (table != FW3_TABLE_FILTER)
return;
- if (!fw3_is_family(forward, family) ||
- (forward->_src && !fw3_is_family(forward->_src, family)) ||
- (forward->_dest && !fw3_is_family(forward->_dest, family)))
+ if (!fw3_is_family(forward, family))
return;
s = forward->_src ? forward->_src->name : "*";
else
info(" * Forward %s->%s", s, d);
+ if (!fw3_is_family(forward->_src, family) ||
+ !fw3_is_family(forward->_dest, family))
+ {
+ info(" ! Skipping due to different family of zone");
+ return;
+ }
+
print_chain(forward);
fw3_format_comment("forwarding ", s, "->", d);
print_target(forward);