Set the inp_vflag consistently for accepted TCP/IPv6 connections when
net.inet6.ip6.v6only=0. Without this patch, the inp_vflag would have INP_IPV4 and the INP_IPV6 flags for accepted TCP/IPv6 connections if the sysctl variable net.inet6.ip6.v6only is 0. This resulted in netstat to report the source and destination addresses as IPv4 addresses, even they are IPv6 addresses. PR: 226421 Reviewed by: bz, hiren, kib MFC after: 3 days Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D13514
This commit is contained in:
parent
06d4810126
commit
1574b1e41e
@ -695,6 +695,8 @@ syncache_socket(struct syncache *sc, struct socket *lso, struct mbuf *m)
|
||||
inp->inp_inc.inc_flags = sc->sc_inc.inc_flags;
|
||||
#ifdef INET6
|
||||
if (sc->sc_inc.inc_flags & INC_ISIPV6) {
|
||||
inp->inp_vflag &= ~INP_IPV4;
|
||||
inp->inp_vflag |= INP_IPV6;
|
||||
inp->in6p_laddr = sc->sc_inc.inc6_laddr;
|
||||
} else {
|
||||
inp->inp_vflag &= ~INP_IPV6;
|
||||
|
Loading…
Reference in New Issue
Block a user