diff options
Diffstat (limited to 'sys/net/if_ethersubr.c')
-rw-r--r-- | sys/net/if_ethersubr.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index ac2ab05..bbf9753 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -73,7 +73,6 @@ #include <netinet/ip_var.h> #include <netinet/ip_fw.h> #include <netinet/ipfw/ip_fw_private.h> -#include <netinet/ip_dummynet.h> #endif #ifdef INET6 #include <netinet6/nd6.h> @@ -474,15 +473,15 @@ ether_ipfw_chk(struct mbuf **m0, struct ifnet *dst, int shared) if (mtag == NULL) { args.rule.slot = 0; } else { - struct dn_pkt_tag *dn_tag; + /* dummynet packet, already partially processed */ + struct ipfw_rule_ref *r; /* XXX can we free it after use ? */ mtag->m_tag_id = PACKET_TAG_NONE; - dn_tag = (struct dn_pkt_tag *)(mtag + 1); - if (dn_tag->rule.slot != 0 && V_fw_one_pass) - /* dummynet packet, already partially processed */ + r = (struct ipfw_rule_ref *)(mtag + 1); + if (r->info & IPFW_ONEPASS) return (1); - args.rule = dn_tag->rule; + args.rule = *r; } /* |