git: IPV6 - Attempt to fix tcp46 compatibility listen sockets

看板DFBSD_commit作者時間16年前 (2009/09/11 10:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 65f3e756b4a281b51547617519a0ec2dd28285c9 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Wed Sep 9 21:52:01 2009 -0700 IPV6 - Attempt to fix tcp46 compatibility listen sockets * When creating the accepted socket via the syncache, if the listen socket is INET6 but allows compatibility connections the inp created via sonewconn() will probably set IN6P_IPV6_V6ONLY. This flag must be cleared if the incoming connection is actually IPV4, otherwise tcp6_soport() will not properly fall through to tcp_soport(). * NOTE: Even though the connection is IPV4 the socket's protocol is copied from the listen socket which is INET6. This seems to work ok but it isn't ideal. * When connecting make sure that IPV6 connections use cpu 0 for now (we don't have a proper hash for IPV6 addresses yet). Reported-by: corecode Summary of changes: sys/netinet/ip_demux.c | 6 +++ sys/netinet/tcp_syncache.c | 1 + sys/netinet/tcp_usrreq.c | 74 +++++++++++++++++++++++++++++++++++++++---- sys/netinet/tcp_var.h | 1 + sys/netinet6/ip6_demux.c | 9 +++++ sys/netinet6/tcp6_var.h | 1 + 6 files changed, 85 insertions(+), 7 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/65f3e756b4a281b51547617519a0ec2dd28285c9 -- DragonFly BSD source repository
文章代碼(AID): #1AgRQe_t (DFBSD_commit)