summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ipfw/ip_fw_pfil.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/ipfw/ip_fw_pfil.c')
-rw-r--r--sys/netinet/ipfw/ip_fw_pfil.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/sys/netinet/ipfw/ip_fw_pfil.c b/sys/netinet/ipfw/ip_fw_pfil.c
index e1dcf16..35ee157 100644
--- a/sys/netinet/ipfw/ip_fw_pfil.c
+++ b/sys/netinet/ipfw/ip_fw_pfil.c
@@ -125,7 +125,8 @@ ipfw_check_in(void *arg, struct mbuf **m0, struct ifnet *ifp, int dir,
if (ng_tag != NULL) {
KASSERT(ng_tag->dir == NG_IPFW_IN,
("ng_ipfw tag with wrong direction"));
- args.rule = ng_tag->rule;
+ args.slot = ng_tag->slot;
+ args.rulenum = ng_tag->rulenum;
args.rule_id = ng_tag->rule_id;
args.chain_id = ng_tag->chain_id;
m_tag_delete(*m0, (struct m_tag *)ng_tag);
@@ -137,10 +138,10 @@ again:
struct dn_pkt_tag *dt;
dt = (struct dn_pkt_tag *)(dn_tag+1);
- args.rule = dt->rule;
+ args.slot = dt->slot;
+ args.rulenum = dt->rulenum;
args.rule_id = dt->rule_id;
args.chain_id = dt->chain_id;
-
m_tag_delete(*m0, dn_tag);
}
@@ -148,7 +149,7 @@ again:
args.inp = inp;
tee = 0;
- if (V_fw_one_pass == 0 || args.rule == NULL) {
+ if (V_fw_one_pass == 0 || args.slot == 0) {
ipfw = ipfw_chk(&args);
*m0 = args.m;
} else
@@ -201,7 +202,7 @@ again:
*m0 = NULL;
return 0; /* packet consumed */
} else {
- args.rule = NULL;
+ args.slot = 0;
goto again; /* continue with packet */
}
@@ -258,7 +259,8 @@ ipfw_check_out(void *arg, struct mbuf **m0, struct ifnet *ifp, int dir,
if (ng_tag != NULL) {
KASSERT(ng_tag->dir == NG_IPFW_OUT,
("ng_ipfw tag with wrong direction"));
- args.rule = ng_tag->rule;
+ args.slot = ng_tag->slot;
+ args.rulenum = ng_tag->rulenum;
args.rule_id = ng_tag->rule_id;
args.chain_id = ng_tag->chain_id;
m_tag_delete(*m0, (struct m_tag *)ng_tag);
@@ -270,10 +272,10 @@ again:
struct dn_pkt_tag *dt;
dt = (struct dn_pkt_tag *)(dn_tag+1);
- args.rule = dt->rule;
+ args.slot = dt->slot;
+ args.rulenum = dt->rulenum;
args.rule_id = dt->rule_id;
args.chain_id = dt->chain_id;
-
m_tag_delete(*m0, dn_tag);
}
@@ -282,7 +284,7 @@ again:
args.inp = inp;
tee = 0;
- if (V_fw_one_pass == 0 || args.rule == NULL) {
+ if (V_fw_one_pass == 0 || args.slot == 0) {
ipfw = ipfw_chk(&args);
*m0 = args.m;
} else
@@ -341,7 +343,7 @@ again:
*m0 = NULL;
return 0; /* packet consumed */
} else {
- args.rule = NULL;
+ args.slot = 0;
goto again; /* continue with packet */
}
OpenPOWER on IntegriCloud