svn commit: r332238 - stable/11/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Sat Apr 7 20:47:26 UTC 2018


Author: tuexen
Date: Sat Apr  7 20:47:25 2018
New Revision: 332238
URL: https://svnweb.freebsd.org/changeset/base/332238

Log:
  MFC r331061:
  
  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
  Sponsored by:		Netflix, Inc.
  Differential Revision:	https://reviews.freebsd.org/D13514

Modified:
  stable/11/sys/netinet/tcp_syncache.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/netinet/tcp_syncache.c
==============================================================================
--- stable/11/sys/netinet/tcp_syncache.c	Sat Apr  7 20:44:30 2018	(r332237)
+++ stable/11/sys/netinet/tcp_syncache.c	Sat Apr  7 20:47:25 2018	(r332238)
@@ -687,6 +687,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-all mailing list