diff options
author | luigi <luigi@FreeBSD.org> | 2010-03-24 15:16:59 +0000 |
---|---|---|
committer | luigi <luigi@FreeBSD.org> | 2010-03-24 15:16:59 +0000 |
commit | 9cd70e53235165dea00bcad0df513c8fbaeb9b53 (patch) | |
tree | 54f618a4f85f5eb8bbd4fa12c6781c9aca4e06c1 /sys/netinet | |
parent | 43835a6341a297f901dfd27338223f82f6e34fbd (diff) | |
download | FreeBSD-src-9cd70e53235165dea00bcad0df513c8fbaeb9b53.zip FreeBSD-src-9cd70e53235165dea00bcad0df513c8fbaeb9b53.tar.gz |
Honor ip.fw.one_pass when a packet comes out of a pipe without being delayed.
I forgot to handle this case when i did the mtag cleanup three months ago.
PR: 145004
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/ipfw/ip_dn_io.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netinet/ipfw/ip_dn_io.c b/sys/netinet/ipfw/ip_dn_io.c index 70f14ca..ae168ce 100644 --- a/sys/netinet/ipfw/ip_dn_io.c +++ b/sys/netinet/ipfw/ip_dn_io.c @@ -762,7 +762,11 @@ dummynet_io(struct mbuf **m0, int dir, struct ip_fw_args *fwa) * */ if (/*dn_cfg.io_fast &&*/ m == *m0 && (dir & PROTO_LAYER2) == 0 ) { - /* fast io */ + /* fast io, rename the tag * to carry reinject info. */ + struct m_tag *tag = m_tag_first(m); + + tag->m_tag_cookie = MTAG_IPFW_RULE; + tag->m_tag_id = 0; io_pkt_fast++; if (m->m_nextpkt != NULL) { printf("dummynet: fast io: pkt chain detected!\n"); |