Fix operation of "netgraph" action in conjunction with the

net.inet.ip.fw.one_pass sysctl.

The "ngtee" action is still broken.

PR:		kern/148885
Submitted by:	Nickolay Dudorov <nnd mail.nsk.ru>
This commit is contained in:
Gleb Smirnoff 2010-07-27 14:26:34 +00:00
parent 627ab90b2a
commit b9bff254af
2 changed files with 4 additions and 1 deletions

View File

@ -287,7 +287,8 @@ ng_ipfw_input(struct mbuf **m0, int dir, struct ip_fw_args *fwa, int tee)
}
r = (struct ipfw_rule_ref *)(tag + 1);
*r = fwa->rule;
r->info = dir ? IPFW_INFO_IN : IPFW_INFO_OUT;
r->info &= IPFW_ONEPASS; /* keep this info */
r->info |= dir ? IPFW_INFO_IN : IPFW_INFO_OUT;
m_tag_prepend(m, tag);
} else

View File

@ -2084,6 +2084,8 @@ do { \
set_match(args, f_pos, chain);
args->rule.info = (cmd->arg1 == IP_FW_TABLEARG) ?
tablearg : cmd->arg1;
if (V_fw_one_pass)
args->rule.info |= IPFW_ONEPASS;
retval = (cmd->opcode == O_NETGRAPH) ?
IP_FW_NETGRAPH : IP_FW_NGTEE;
l = 0; /* exit inner loop */