Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Mar 2018 15:26:07 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r331061 - head/sys/netinet
Message-ID:  <201803161526.w2GFQ7gR071565@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803161526.w2GFQ7gR071565>