summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/ip_divert.c3
-rw-r--r--sys/netinet/ip_input.c1
-rw-r--r--sys/netinet/ip_output.c1
3 files changed, 3 insertions, 2 deletions
diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c
index c35b2ca..fc25b70 100644
--- a/sys/netinet/ip_divert.c
+++ b/sys/netinet/ip_divert.c
@@ -206,8 +206,7 @@ div_output(so, m, addr, control)
sin = mtod(addr, struct sockaddr_in *);
/* Loopback avoidance option */
- if (sin && sin->sin_port)
- ip_divert_ignore = ntohs(inp->inp_lport);
+ ip_divert_ignore = ntohs(inp->inp_lport);
/* Reinject packet into the system as incoming or outgoing */
if (!sin || sin->sin_addr.s_addr == 0) {
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index 48dfff1..a627f6d 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -320,6 +320,7 @@ tooshort:
#ifdef IPDIVERT
action = (*ip_fw_chk_ptr)(&ip, hlen,
m->m_pkthdr.rcvif, ip_divert_ignore, &m);
+ ip_divert_ignore = 0;
#else
action = (*ip_fw_chk_ptr)(&ip, hlen, m->m_pkthdr.rcvif, 0, &m);
#endif
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
index e62bf6f..81358ba 100644
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -355,6 +355,7 @@ sendit:
#ifdef IPDIVERT
action = (*ip_fw_chk_ptr)(&ip,
hlen, ifp, (~0 << 16) | ip_divert_ignore, &m);
+ ip_divert_ignore = 0;
#else
action = (*ip_fw_chk_ptr)(&ip, hlen, ifp, (~0 << 16), &m);
#endif
OpenPOWER on IntegriCloud