svn commit: r331061 - head/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Fri Mar 16 15:26:08 UTC 2018


Author: tuexen
Date: Fri Mar 16 15:26:07 2018
New Revision: 331061
URL: https://svnweb.freebsd.org/changeset/base/331061

Log:
  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

Modified:
  head/sys/netinet/tcp_syncache.c

Modified: head/sys/netinet/tcp_syncache.c
==============================================================================
--- head/sys/netinet/tcp_syncache.c	Fri Mar 16 15:15:25 2018	(r331060)
+++ head/sys/netinet/tcp_syncache.c	Fri Mar 16 15:26:07 2018	(r331061)
@@ -695,6 +695,8 @@ syncache_socket(struct syncache *sc, struct socket *ls
 	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;


More information about the svn-src-head mailing list