Fix the regression introduced in r300143.

When we are creating new dynamic state use MATCH_FORWARD direction to
correctly initialize protocol's state.
This commit is contained in:
Andrey V. Elsukov 2016-05-20 15:00:12 +00:00
parent b7505e07e5
commit d16f495cad
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=300302

View File

@ -687,7 +687,7 @@ ipfw_install_state(struct ip_fw_chain *chain, struct ip_fw *rule,
ipfw_insn_limit *cmd, struct ip_fw_args *args, uint32_t tablearg)
{
ipfw_dyn_rule *q;
int i, dir;
int i;
DEB(print_dyn_rule(&args->f_id, cmd->o.opcode, "install_state", "");)
@ -695,7 +695,7 @@ ipfw_install_state(struct ip_fw_chain *chain, struct ip_fw *rule,
IPFW_BUCK_LOCK(i);
q = lookup_dyn_rule_locked(&args->f_id, i, &dir, NULL);
q = lookup_dyn_rule_locked(&args->f_id, i, NULL, NULL);
if (q != NULL) { /* should never occur */
DEB(
if (last_log != time_uptime) {
@ -816,7 +816,7 @@ ipfw_install_state(struct ip_fw_chain *chain, struct ip_fw *rule,
return (1); /* Notify caller about failure */
}
dyn_update_proto_state(q, &args->f_id, NULL, dir);
dyn_update_proto_state(q, &args->f_id, NULL, MATCH_FORWARD);
IPFW_BUCK_UNLOCK(i);
return (0);
}