Browse Source

vendor: golang.org/x/net 6772e930b67bb09bf22262c7378e7d2f67cf59d1

full diff: https://github.com/golang/net/compare/ab34263943818b32f575efc978a3d24e80b04bd7...6772e930b67bb09bf22262c7378e7d2f67cf59d1

- http/httpproxy: match http scheme when selecting http_proxy
- drop support for pre-1.12 direct syscalls on darwin
- x/net/http2: reject HTTP/2 Content-Length headers containing a sign
- http2/h2i: use x/term instead of x/crypto/ssh/terminal

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 4 years ago
parent
commit
8db4c4ca01
89 changed files with 3157 additions and 253 deletions
  1. 1 1
      vendor.conf
  2. 2 0
      vendor/golang.org/x/net/README.md
  3. 3 3
      vendor/golang.org/x/net/go.mod
  4. 8 4
      vendor/golang.org/x/net/http2/server.go
  5. 34 6
      vendor/golang.org/x/net/http2/transport.go
  6. 1 1
      vendor/golang.org/x/net/idna/tables12.0.0.go
  7. 2394 0
      vendor/golang.org/x/net/idna/tables13.0.0.go
  8. 1 1
      vendor/golang.org/x/net/internal/socket/cmsghdr.go
  9. 13 3
      vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go
  10. 21 0
      vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go
  11. 25 0
      vendor/golang.org/x/net/internal/socket/cmsghdr_zos_s390x.go
  12. 1 1
      vendor/golang.org/x/net/internal/socket/error_unix.go
  13. 1 1
      vendor/golang.org/x/net/internal/socket/iovec_64bit.go
  14. 1 1
      vendor/golang.org/x/net/internal/socket/iovec_stub.go
  15. 1 1
      vendor/golang.org/x/net/internal/socket/msghdr_stub.go
  16. 36 0
      vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go
  17. 4 3
      vendor/golang.org/x/net/internal/socket/rawconn_msg.go
  18. 1 1
      vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go
  19. 1 9
      vendor/golang.org/x/net/internal/socket/socket.go
  20. 2 12
      vendor/golang.org/x/net/internal/socket/sys.go
  21. 0 23
      vendor/golang.org/x/net/internal/socket/sys_bsdvar.go
  22. 17 0
      vendor/golang.org/x/net/internal/socket/sys_const_zos.go
  23. 0 7
      vendor/golang.org/x/net/internal/socket/sys_darwin.go
  24. 0 32
      vendor/golang.org/x/net/internal/socket/sys_dragonfly.go
  25. 0 5
      vendor/golang.org/x/net/internal/socket/sys_linux.go
  26. 0 2
      vendor/golang.org/x/net/internal/socket/sys_linux_386.go
  27. 0 2
      vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go
  28. 1 1
      vendor/golang.org/x/net/internal/socket/sys_posix.go
  29. 0 11
      vendor/golang.org/x/net/internal/socket/sys_solaris.go
  30. 2 16
      vendor/golang.org/x/net/internal/socket/sys_stub.go
  31. 12 7
      vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go
  32. 11 0
      vendor/golang.org/x/net/internal/socket/sys_zos_s390x.s
  33. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go
  34. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go
  35. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go
  36. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go
  37. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go
  38. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go
  39. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go
  40. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go
  41. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go
  42. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go
  43. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_linux_386.go
  44. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go
  45. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go
  46. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go
  47. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go
  48. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go
  49. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go
  50. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go
  51. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go
  52. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go
  53. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go
  54. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go
  55. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go
  56. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go
  57. 0 2
      vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go
  58. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go
  59. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go
  60. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go
  61. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go
  62. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go
  63. 50 0
      vendor/golang.org/x/net/internal/socket/zsys_openbsd_mips64.go
  64. 2 3
      vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go
  65. 32 0
      vendor/golang.org/x/net/internal/socket/zsys_zos_s390x.go
  66. 1 1
      vendor/golang.org/x/net/ipv4/control_stub.go
  67. 86 0
      vendor/golang.org/x/net/ipv4/control_zos.go
  68. 2 2
      vendor/golang.org/x/net/ipv4/header.go
  69. 1 1
      vendor/golang.org/x/net/ipv4/payload_cmsg.go
  70. 1 1
      vendor/golang.org/x/net/ipv4/payload_nocmsg.go
  71. 1 1
      vendor/golang.org/x/net/ipv4/sockopt_posix.go
  72. 1 1
      vendor/golang.org/x/net/ipv4/sockopt_stub.go
  73. 1 1
      vendor/golang.org/x/net/ipv4/sys_stub.go
  74. 55 0
      vendor/golang.org/x/net/ipv4/sys_zos.go
  75. 80 0
      vendor/golang.org/x/net/ipv4/zsys_zos_s390x.go
  76. 1 1
      vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go
  77. 1 1
      vendor/golang.org/x/net/ipv6/control_stub.go
  78. 1 1
      vendor/golang.org/x/net/ipv6/control_unix.go
  79. 1 1
      vendor/golang.org/x/net/ipv6/icmp_stub.go
  80. 29 0
      vendor/golang.org/x/net/ipv6/icmp_zos.go
  81. 1 1
      vendor/golang.org/x/net/ipv6/payload_cmsg.go
  82. 1 1
      vendor/golang.org/x/net/ipv6/payload_nocmsg.go
  83. 1 1
      vendor/golang.org/x/net/ipv6/sockopt_posix.go
  84. 1 1
      vendor/golang.org/x/net/ipv6/sockopt_stub.go
  85. 1 1
      vendor/golang.org/x/net/ipv6/sys_ssmreq.go
  86. 1 1
      vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go
  87. 1 1
      vendor/golang.org/x/net/ipv6/sys_stub.go
  88. 70 0
      vendor/golang.org/x/net/ipv6/sys_zos.go
  89. 106 0
      vendor/golang.org/x/net/ipv6/zsys_zos_s390x.go

+ 1 - 1
vendor.conf

@@ -19,7 +19,7 @@ github.com/moby/sys                                 b0f1fd7235275d01bd35cc4421e8
 github.com/creack/pty                               2a38352e8b4d7ab6c336eef107e42a55e72e7fbc # v1.1.11
 github.com/creack/pty                               2a38352e8b4d7ab6c336eef107e42a55e72e7fbc # v1.1.11
 github.com/sirupsen/logrus                          6699a89a232f3db797f2e280639854bbc4b89725 # v1.7.0
 github.com/sirupsen/logrus                          6699a89a232f3db797f2e280639854bbc4b89725 # v1.7.0
 github.com/tchap/go-patricia                        a7f0089c6f496e8e70402f61733606daa326cac5 # v2.3.0
 github.com/tchap/go-patricia                        a7f0089c6f496e8e70402f61733606daa326cac5 # v2.3.0
-golang.org/x/net                                    ab34263943818b32f575efc978a3d24e80b04bd7
+golang.org/x/net                                    6772e930b67bb09bf22262c7378e7d2f67cf59d1
 golang.org/x/sys                                    b64e53b001e413bd5067f36d4e439eded3827374
 golang.org/x/sys                                    b64e53b001e413bd5067f36d4e439eded3827374
 github.com/docker/go-units                          519db1ee28dcc9fd2474ae59fca29a810482bfb1 # v0.4.0
 github.com/docker/go-units                          519db1ee28dcc9fd2474ae59fca29a810482bfb1 # v0.4.0
 github.com/docker/go-connections                    7395e3f8aa162843a74ed6d48e79627d9792ac55 # v0.4.0
 github.com/docker/go-connections                    7395e3f8aa162843a74ed6d48e79627d9792ac55 # v0.4.0

+ 2 - 0
vendor/golang.org/x/net/README.md

@@ -1,5 +1,7 @@
 # Go Networking
 # Go Networking
 
 
+[![Go Reference](https://pkg.go.dev/badge/golang.org/x/net.svg)](https://pkg.go.dev/golang.org/x/net)
+
 This repository holds supplementary Go networking libraries.
 This repository holds supplementary Go networking libraries.
 
 
 ## Download/Install
 ## Download/Install

+ 3 - 3
vendor/golang.org/x/net/go.mod

@@ -3,7 +3,7 @@ module golang.org/x/net
 go 1.11
 go 1.11
 
 
 require (
 require (
-	golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
-	golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd
-	golang.org/x/text v0.3.0
+	golang.org/x/sys v0.0.0-20201119102817-f84b799fce68
+	golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
+	golang.org/x/text v0.3.3
 )
 )

+ 8 - 4
vendor/golang.org/x/net/http2/server.go

@@ -1694,6 +1694,7 @@ func (sc *serverConn) processData(f *DataFrame) error {
 		if len(data) > 0 {
 		if len(data) > 0 {
 			wrote, err := st.body.Write(data)
 			wrote, err := st.body.Write(data)
 			if err != nil {
 			if err != nil {
+				sc.sendWindowUpdate(nil, int(f.Length)-wrote)
 				return streamError(id, ErrCodeStreamClosed)
 				return streamError(id, ErrCodeStreamClosed)
 			}
 			}
 			if wrote != len(data) {
 			if wrote != len(data) {
@@ -2020,7 +2021,11 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res
 	}
 	}
 	if bodyOpen {
 	if bodyOpen {
 		if vv, ok := rp.header["Content-Length"]; ok {
 		if vv, ok := rp.header["Content-Length"]; ok {
-			req.ContentLength, _ = strconv.ParseInt(vv[0], 10, 64)
+			if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil {
+				req.ContentLength = int64(cl)
+			} else {
+				req.ContentLength = 0
+			}
 		} else {
 		} else {
 			req.ContentLength = -1
 			req.ContentLength = -1
 		}
 		}
@@ -2403,9 +2408,8 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {
 		var ctype, clen string
 		var ctype, clen string
 		if clen = rws.snapHeader.Get("Content-Length"); clen != "" {
 		if clen = rws.snapHeader.Get("Content-Length"); clen != "" {
 			rws.snapHeader.Del("Content-Length")
 			rws.snapHeader.Del("Content-Length")
-			clen64, err := strconv.ParseInt(clen, 10, 64)
-			if err == nil && clen64 >= 0 {
-				rws.sentContentLen = clen64
+			if cl, err := strconv.ParseUint(clen, 10, 63); err == nil {
+				rws.sentContentLen = int64(cl)
 			} else {
 			} else {
 				clen = ""
 				clen = ""
 			}
 			}

+ 34 - 6
vendor/golang.org/x/net/http2/transport.go

@@ -154,12 +154,21 @@ func (t *Transport) pingTimeout() time.Duration {
 
 
 // ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.
 // ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.
 // It returns an error if t1 has already been HTTP/2-enabled.
 // It returns an error if t1 has already been HTTP/2-enabled.
+//
+// Use ConfigureTransports instead to configure the HTTP/2 Transport.
 func ConfigureTransport(t1 *http.Transport) error {
 func ConfigureTransport(t1 *http.Transport) error {
-	_, err := configureTransport(t1)
+	_, err := ConfigureTransports(t1)
 	return err
 	return err
 }
 }
 
 
-func configureTransport(t1 *http.Transport) (*Transport, error) {
+// ConfigureTransports configures a net/http HTTP/1 Transport to use HTTP/2.
+// It returns a new HTTP/2 Transport for further configuration.
+// It returns an error if t1 has already been HTTP/2-enabled.
+func ConfigureTransports(t1 *http.Transport) (*Transport, error) {
+	return configureTransports(t1)
+}
+
+func configureTransports(t1 *http.Transport) (*Transport, error) {
 	connPool := new(clientConnPool)
 	connPool := new(clientConnPool)
 	t2 := &Transport{
 	t2 := &Transport{
 		ConnPool: noDialClientConnPool{connPool},
 		ConnPool: noDialClientConnPool{connPool},
@@ -689,6 +698,7 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
 	cc.inflow.add(transportDefaultConnFlow + initialWindowSize)
 	cc.inflow.add(transportDefaultConnFlow + initialWindowSize)
 	cc.bw.Flush()
 	cc.bw.Flush()
 	if cc.werr != nil {
 	if cc.werr != nil {
+		cc.Close()
 		return nil, cc.werr
 		return nil, cc.werr
 	}
 	}
 
 
@@ -1080,6 +1090,15 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
 	bodyWriter := cc.t.getBodyWriterState(cs, body)
 	bodyWriter := cc.t.getBodyWriterState(cs, body)
 	cs.on100 = bodyWriter.on100
 	cs.on100 = bodyWriter.on100
 
 
+	defer func() {
+		cc.wmu.Lock()
+		werr := cc.werr
+		cc.wmu.Unlock()
+		if werr != nil {
+			cc.Close()
+		}
+	}()
+
 	cc.wmu.Lock()
 	cc.wmu.Lock()
 	endStream := !hasBody && !hasTrailers
 	endStream := !hasBody && !hasTrailers
 	werr := cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)
 	werr := cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)
@@ -1129,6 +1148,9 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
 			// we can keep it.
 			// we can keep it.
 			bodyWriter.cancel()
 			bodyWriter.cancel()
 			cs.abortRequestBodyWrite(errStopReqBodyWrite)
 			cs.abortRequestBodyWrite(errStopReqBodyWrite)
+			if hasBody && !bodyWritten {
+				<-bodyWriter.resc
+			}
 		}
 		}
 		if re.err != nil {
 		if re.err != nil {
 			cc.forgetStreamID(cs.ID)
 			cc.forgetStreamID(cs.ID)
@@ -1149,6 +1171,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
 			} else {
 			} else {
 				bodyWriter.cancel()
 				bodyWriter.cancel()
 				cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
 				cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
+				<-bodyWriter.resc
 			}
 			}
 			cc.forgetStreamID(cs.ID)
 			cc.forgetStreamID(cs.ID)
 			return nil, cs.getStartedWrite(), errTimeout
 			return nil, cs.getStartedWrite(), errTimeout
@@ -1158,6 +1181,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
 			} else {
 			} else {
 				bodyWriter.cancel()
 				bodyWriter.cancel()
 				cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
 				cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
+				<-bodyWriter.resc
 			}
 			}
 			cc.forgetStreamID(cs.ID)
 			cc.forgetStreamID(cs.ID)
 			return nil, cs.getStartedWrite(), ctx.Err()
 			return nil, cs.getStartedWrite(), ctx.Err()
@@ -1167,6 +1191,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
 			} else {
 			} else {
 				bodyWriter.cancel()
 				bodyWriter.cancel()
 				cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
 				cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
+				<-bodyWriter.resc
 			}
 			}
 			cc.forgetStreamID(cs.ID)
 			cc.forgetStreamID(cs.ID)
 			return nil, cs.getStartedWrite(), errRequestCanceled
 			return nil, cs.getStartedWrite(), errRequestCanceled
@@ -1176,6 +1201,7 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
 			// forgetStreamID.
 			// forgetStreamID.
 			return nil, cs.getStartedWrite(), cs.resetErr
 			return nil, cs.getStartedWrite(), cs.resetErr
 		case err := <-bodyWriter.resc:
 		case err := <-bodyWriter.resc:
+			bodyWritten = true
 			// Prefer the read loop's response, if available. Issue 16102.
 			// Prefer the read loop's response, if available. Issue 16102.
 			select {
 			select {
 			case re := <-readLoopResCh:
 			case re := <-readLoopResCh:
@@ -1186,7 +1212,6 @@ func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAf
 				cc.forgetStreamID(cs.ID)
 				cc.forgetStreamID(cs.ID)
 				return nil, cs.getStartedWrite(), err
 				return nil, cs.getStartedWrite(), err
 			}
 			}
-			bodyWritten = true
 			if d := cc.responseHeaderTimeout(); d != 0 {
 			if d := cc.responseHeaderTimeout(); d != 0 {
 				timer := time.NewTimer(d)
 				timer := time.NewTimer(d)
 				defer timer.Stop()
 				defer timer.Stop()
@@ -2006,8 +2031,8 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
 	if !streamEnded || isHead {
 	if !streamEnded || isHead {
 		res.ContentLength = -1
 		res.ContentLength = -1
 		if clens := res.Header["Content-Length"]; len(clens) == 1 {
 		if clens := res.Header["Content-Length"]; len(clens) == 1 {
-			if clen64, err := strconv.ParseInt(clens[0], 10, 64); err == nil {
-				res.ContentLength = clen64
+			if cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil {
+				res.ContentLength = int64(cl)
 			} else {
 			} else {
 				// TODO: care? unlike http/1, it won't mess up our framing, so it's
 				// TODO: care? unlike http/1, it won't mess up our framing, so it's
 				// more safe smuggling-wise to ignore.
 				// more safe smuggling-wise to ignore.
@@ -2525,6 +2550,7 @@ func strSliceContains(ss []string, s string) bool {
 
 
 type erringRoundTripper struct{ err error }
 type erringRoundTripper struct{ err error }
 
 
+func (rt erringRoundTripper) RoundTripErr() error                             { return rt.err }
 func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err }
 func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err }
 
 
 // gzipReader wraps a response body so it can lazily
 // gzipReader wraps a response body so it can lazily
@@ -2606,7 +2632,9 @@ func (t *Transport) getBodyWriterState(cs *clientStream, body io.Reader) (s body
 
 
 func (s bodyWriterState) cancel() {
 func (s bodyWriterState) cancel() {
 	if s.timer != nil {
 	if s.timer != nil {
-		s.timer.Stop()
+		if s.timer.Stop() {
+			s.resc <- nil
+		}
 	}
 	}
 }
 }
 
 

+ 1 - 1
vendor/golang.org/x/net/idna/tables12.00.go → vendor/golang.org/x/net/idna/tables12.0.0.go

@@ -1,6 +1,6 @@
 // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
 // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
 
 
-// +build go1.14
+// +build go1.14,!go1.16
 
 
 package idna
 package idna
 
 

File diff suppressed because it is too large
+ 2394 - 0
vendor/golang.org/x/net/idna/tables13.0.0.go


+ 1 - 1
vendor/golang.org/x/net/internal/socket/cmsghdr.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
 
 
 package socket
 package socket
 
 

+ 13 - 3
vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go

@@ -2,13 +2,23 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos
 
 
 package socket
 package socket
 
 
-type cmsghdr struct{}
+func controlHeaderLen() int {
+	return 0
+}
+
+func controlMessageLen(dataLen int) int {
+	return 0
+}
 
 
-const sizeofCmsghdr = 0
+func controlMessageSpace(dataLen int) int {
+	return 0
+}
+
+type cmsghdr struct{}
 
 
 func (h *cmsghdr) len() int { return 0 }
 func (h *cmsghdr) len() int { return 0 }
 func (h *cmsghdr) lvl() int { return 0 }
 func (h *cmsghdr) lvl() int { return 0 }

+ 21 - 0
vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go

@@ -0,0 +1,21 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package socket
+
+import "golang.org/x/sys/unix"
+
+func controlHeaderLen() int {
+	return unix.CmsgLen(0)
+}
+
+func controlMessageLen(dataLen int) int {
+	return unix.CmsgLen(dataLen)
+}
+
+func controlMessageSpace(dataLen int) int {
+	return unix.CmsgSpace(dataLen)
+}

+ 25 - 0
vendor/golang.org/x/net/internal/socket/cmsghdr_zos_s390x.go

@@ -0,0 +1,25 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package socket
+
+import "syscall"
+
+func (h *cmsghdr) set(l, lvl, typ int) {
+	h.Len = int32(l)
+	h.Level = int32(lvl)
+	h.Type = int32(typ)
+}
+
+func controlHeaderLen() int {
+	return syscall.CmsgLen(0)
+}
+
+func controlMessageLen(dataLen int) int {
+	return syscall.CmsgLen(dataLen)
+}
+
+func controlMessageSpace(dataLen int) int {
+	return syscall.CmsgSpace(dataLen)
+}

+ 1 - 1
vendor/golang.org/x/net/internal/socket/error_unix.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
 
 
 package socket
 package socket
 
 

+ 1 - 1
vendor/golang.org/x/net/internal/socket/iovec_64bit.go

@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
 // +build arm64 amd64 ppc64 ppc64le mips64 mips64le riscv64 s390x
 // +build arm64 amd64 ppc64 ppc64le mips64 mips64le riscv64 s390x
-// +build aix darwin dragonfly freebsd linux netbsd openbsd
+// +build aix darwin dragonfly freebsd linux netbsd openbsd zos
 
 
 package socket
 package socket
 
 

+ 1 - 1
vendor/golang.org/x/net/internal/socket/iovec_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos
 
 
 package socket
 package socket
 
 

+ 1 - 1
vendor/golang.org/x/net/internal/socket/msghdr_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos
 
 
 package socket
 package socket
 
 

+ 36 - 0
vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go

@@ -0,0 +1,36 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build s390x
+// +build zos
+
+package socket
+
+import "unsafe"
+
+func (h *msghdr) pack(vs []iovec, bs [][]byte, oob []byte, sa []byte) {
+	for i := range vs {
+		vs[i].set(bs[i])
+	}
+	if len(vs) > 0 {
+		h.Iov = &vs[0]
+		h.Iovlen = int32(len(vs))
+	}
+	if len(oob) > 0 {
+		h.Control = (*byte)(unsafe.Pointer(&oob[0]))
+		h.Controllen = uint32(len(oob))
+	}
+	if sa != nil {
+		h.Name = (*byte)(unsafe.Pointer(&sa[0]))
+		h.Namelen = uint32(len(sa))
+	}
+}
+
+func (h *msghdr) controllen() int {
+	return int(h.Controllen)
+}
+
+func (h *msghdr) flags() int {
+	return int(h.Flags)
+}

+ 4 - 3
vendor/golang.org/x/net/internal/socket/rawconn_msg.go

@@ -2,12 +2,13 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos
 
 
 package socket
 package socket
 
 
 import (
 import (
 	"os"
 	"os"
+	"runtime"
 	"syscall"
 	"syscall"
 )
 )
 
 
@@ -24,7 +25,7 @@ func (c *Conn) recvMsg(m *Message, flags int) error {
 	var n int
 	var n int
 	fn := func(s uintptr) bool {
 	fn := func(s uintptr) bool {
 		n, operr = recvmsg(s, &h, flags)
 		n, operr = recvmsg(s, &h, flags)
-		if operr == syscall.EAGAIN {
+		if operr == syscall.EAGAIN || (runtime.GOOS == "zos" && operr == syscall.EWOULDBLOCK) {
 			return false
 			return false
 		}
 		}
 		return true
 		return true
@@ -61,7 +62,7 @@ func (c *Conn) sendMsg(m *Message, flags int) error {
 	var n int
 	var n int
 	fn := func(s uintptr) bool {
 	fn := func(s uintptr) bool {
 		n, operr = sendmsg(s, &h, flags)
 		n, operr = sendmsg(s, &h, flags)
-		if operr == syscall.EAGAIN {
+		if operr == syscall.EAGAIN || (runtime.GOOS == "zos" && operr == syscall.EWOULDBLOCK) {
 			return false
 			return false
 		}
 		}
 		return true
 		return true

+ 1 - 1
vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package socket
 package socket
 
 

+ 1 - 9
vendor/golang.org/x/net/internal/socket/socket.go

@@ -90,17 +90,9 @@ func (o *Option) SetInt(c *Conn, v int) error {
 	return o.set(c, b)
 	return o.set(c, b)
 }
 }
 
 
-func controlHeaderLen() int {
-	return roundup(sizeofCmsghdr)
-}
-
-func controlMessageLen(dataLen int) int {
-	return roundup(sizeofCmsghdr) + dataLen
-}
-
 // ControlMessageSpace returns the whole length of control message.
 // ControlMessageSpace returns the whole length of control message.
 func ControlMessageSpace(dataLen int) int {
 func ControlMessageSpace(dataLen int) int {
-	return roundup(sizeofCmsghdr) + roundup(dataLen)
+	return controlMessageSpace(dataLen)
 }
 }
 
 
 // A ControlMessage represents the head message in a stream of control
 // A ControlMessage represents the head message in a stream of control

+ 2 - 12
vendor/golang.org/x/net/internal/socket/sys.go

@@ -9,13 +9,8 @@ import (
 	"unsafe"
 	"unsafe"
 )
 )
 
 
-var (
-	// NativeEndian is the machine native endian implementation of
-	// ByteOrder.
-	NativeEndian binary.ByteOrder
-
-	kernelAlign int
-)
+// NativeEndian is the machine native endian implementation of ByteOrder.
+var NativeEndian binary.ByteOrder
 
 
 func init() {
 func init() {
 	i := uint32(1)
 	i := uint32(1)
@@ -25,9 +20,4 @@ func init() {
 	} else {
 	} else {
 		NativeEndian = binary.BigEndian
 		NativeEndian = binary.BigEndian
 	}
 	}
-	kernelAlign = probeProtocolStack()
-}
-
-func roundup(l int) int {
-	return (l + kernelAlign - 1) &^ (kernelAlign - 1)
 }
 }

+ 0 - 23
vendor/golang.org/x/net/internal/socket/sys_bsdvar.go

@@ -1,23 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build aix freebsd netbsd openbsd
-
-package socket
-
-import (
-	"runtime"
-	"unsafe"
-)
-
-func probeProtocolStack() int {
-	if (runtime.GOOS == "netbsd" || runtime.GOOS == "openbsd") && runtime.GOARCH == "arm" {
-		return 8
-	}
-	if runtime.GOOS == "aix" {
-		return 1
-	}
-	var p uintptr
-	return int(unsafe.Sizeof(p))
-}

+ 17 - 0
vendor/golang.org/x/net/internal/socket/sys_const_zos.go

@@ -0,0 +1,17 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build zos
+
+package socket
+
+import "syscall"
+
+const (
+	sysAF_UNSPEC = syscall.AF_UNSPEC
+	sysAF_INET   = syscall.AF_INET
+	sysAF_INET6  = syscall.AF_INET6
+
+	sysSOCK_RAW = syscall.SOCK_RAW
+)

+ 0 - 7
vendor/golang.org/x/net/internal/socket/sys_darwin.go

@@ -1,7 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package socket
-
-func probeProtocolStack() int { return 4 }

+ 0 - 32
vendor/golang.org/x/net/internal/socket/sys_dragonfly.go

@@ -1,32 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package socket
-
-import (
-	"sync"
-	"syscall"
-	"unsafe"
-)
-
-// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h
-var (
-	osreldateOnce sync.Once
-	osreldate     uint32
-)
-
-// First __DragonFly_version after September 2019 ABI changes
-// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html
-const _dragonflyABIChangeVersion = 500705
-
-func probeProtocolStack() int {
-	osreldateOnce.Do(func() { osreldate, _ = syscall.SysctlUint32("kern.osreldate") })
-	var p uintptr
-	if int(unsafe.Sizeof(p)) == 8 && osreldate >= _dragonflyABIChangeVersion {
-		return int(unsafe.Sizeof(p))
-	}
-	// 64-bit Dragonfly before the September 2019 ABI changes still requires
-	// 32-bit aligned access to network subsystem.
-	return 4
-}

+ 0 - 5
vendor/golang.org/x/net/internal/socket/sys_linux.go

@@ -11,11 +11,6 @@ import (
 	"unsafe"
 	"unsafe"
 )
 )
 
 
-func probeProtocolStack() int {
-	var p uintptr
-	return int(unsafe.Sizeof(p))
-}
-
 func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
 func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
 	n, _, errno := syscall.Syscall6(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0)
 	n, _, errno := syscall.Syscall6(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0)
 	return int(n), errnoErr(errno)
 	return int(n), errnoErr(errno)

+ 0 - 2
vendor/golang.org/x/net/internal/socket/sys_linux_386.go

@@ -9,8 +9,6 @@ import (
 	"unsafe"
 	"unsafe"
 )
 )
 
 
-func probeProtocolStack() int { return 4 }
-
 const (
 const (
 	sysSETSOCKOPT = 0xe
 	sysSETSOCKOPT = 0xe
 	sysGETSOCKOPT = 0xf
 	sysGETSOCKOPT = 0xf

+ 0 - 2
vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go

@@ -9,8 +9,6 @@ import (
 	"unsafe"
 	"unsafe"
 )
 )
 
 
-func probeProtocolStack() int { return 8 }
-
 const (
 const (
 	sysSETSOCKOPT = 0xe
 	sysSETSOCKOPT = 0xe
 	sysGETSOCKOPT = 0xf
 	sysGETSOCKOPT = 0xf

+ 1 - 1
vendor/golang.org/x/net/internal/socket/sys_posix.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos
 
 
 package socket
 package socket
 
 

+ 0 - 11
vendor/golang.org/x/net/internal/socket/sys_solaris.go

@@ -5,21 +5,10 @@
 package socket
 package socket
 
 
 import (
 import (
-	"runtime"
 	"syscall"
 	"syscall"
 	"unsafe"
 	"unsafe"
 )
 )
 
 
-func probeProtocolStack() int {
-	switch runtime.GOARCH {
-	case "amd64":
-		return 4
-	default:
-		var p uintptr
-		return int(unsafe.Sizeof(p))
-	}
-}
-
 //go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so"
 //go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so"
 //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so"
 //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so"
 //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so"
 //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so"

+ 2 - 16
vendor/golang.org/x/net/internal/socket/sys_stub.go

@@ -2,15 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package socket
 package socket
 
 
-import (
-	"net"
-	"runtime"
-	"unsafe"
-)
+import "net"
 
 
 const (
 const (
 	sysAF_UNSPEC = 0x0
 	sysAF_UNSPEC = 0x0
@@ -20,16 +16,6 @@ const (
 	sysSOCK_RAW = 0x3
 	sysSOCK_RAW = 0x3
 )
 )
 
 
-func probeProtocolStack() int {
-	switch runtime.GOARCH {
-	case "amd64p32", "mips64p32":
-		return 4
-	default:
-		var p uintptr
-		return int(unsafe.Sizeof(p))
-	}
-}
-
 func marshalInetAddr(ip net.IP, port int, zone string) []byte {
 func marshalInetAddr(ip net.IP, port int, zone string) []byte {
 	return nil
 	return nil
 }
 }

+ 12 - 7
vendor/golang.org/x/net/internal/socket/sys_go1_11_darwin.go → vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go

@@ -1,9 +1,7 @@
-// Copyright 2018 The Go Authors. All rights reserved.
+// Copyright 2020 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !go1.12
-
 package socket
 package socket
 
 
 import (
 import (
@@ -11,23 +9,30 @@ import (
 	"unsafe"
 	"unsafe"
 )
 )
 
 
+func syscall_syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
+func syscall_syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+func probeProtocolStack() int {
+	return 4 // sizeof(int) on GOOS=zos GOARCH=s390x
+}
+
 func getsockopt(s uintptr, level, name int, b []byte) (int, error) {
 func getsockopt(s uintptr, level, name int, b []byte) (int, error) {
 	l := uint32(len(b))
 	l := uint32(len(b))
-	_, _, errno := syscall.Syscall6(syscall.SYS_GETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0)
+	_, _, errno := syscall_syscall6(syscall.SYS_GETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0)
 	return int(l), errnoErr(errno)
 	return int(l), errnoErr(errno)
 }
 }
 
 
 func setsockopt(s uintptr, level, name int, b []byte) error {
 func setsockopt(s uintptr, level, name int, b []byte) error {
-	_, _, errno := syscall.Syscall6(syscall.SYS_SETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0)
+	_, _, errno := syscall_syscall6(syscall.SYS_SETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0)
 	return errnoErr(errno)
 	return errnoErr(errno)
 }
 }
 
 
 func recvmsg(s uintptr, h *msghdr, flags int) (int, error) {
 func recvmsg(s uintptr, h *msghdr, flags int) (int, error) {
-	n, _, errno := syscall.Syscall(syscall.SYS_RECVMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags))
+	n, _, errno := syscall_syscall(syscall.SYS___RECVMSG_A, s, uintptr(unsafe.Pointer(h)), uintptr(flags))
 	return int(n), errnoErr(errno)
 	return int(n), errnoErr(errno)
 }
 }
 
 
 func sendmsg(s uintptr, h *msghdr, flags int) (int, error) {
 func sendmsg(s uintptr, h *msghdr, flags int) (int, error) {
-	n, _, errno := syscall.Syscall(syscall.SYS_SENDMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags))
+	n, _, errno := syscall_syscall(syscall.SYS___SENDMSG_A, s, uintptr(unsafe.Pointer(h)), uintptr(flags))
 	return int(n), errnoErr(errno)
 	return int(n), errnoErr(errno)
 }
 }

+ 11 - 0
vendor/golang.org/x/net/internal/socket/sys_zos_s390x.s

@@ -0,0 +1,11 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "textflag.h"
+
+TEXT ·syscall_syscall(SB),NOSPLIT,$0
+        JMP     syscall·_syscall(SB)
+
+TEXT ·syscall_syscall6(SB),NOSPLIT,$0
+        JMP     syscall·_syscall6(SB)

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go

@@ -51,9 +51,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go

@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go

@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go

@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go

@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go

@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go

@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go

@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go

@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go

@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_linux_386.go

@@ -45,9 +45,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go

@@ -48,9 +48,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x38
-	sizeofCmsghdr = 0x10
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x38
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go

@@ -48,8 +48,6 @@ const (
 	sizeofIovec  = 0x8
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 	sizeofMsghdr = 0x1c
 
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go

@@ -51,8 +51,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 	sizeofMsghdr = 0x38
 
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go

@@ -48,8 +48,6 @@ const (
 	sizeofIovec  = 0x8
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 	sizeofMsghdr = 0x1c
 
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go

@@ -51,8 +51,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 	sizeofMsghdr = 0x38
 
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go

@@ -51,8 +51,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 	sizeofMsghdr = 0x38
 
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go

@@ -48,8 +48,6 @@ const (
 	sizeofIovec  = 0x8
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 	sizeofMsghdr = 0x1c
 
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go

@@ -51,8 +51,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 	sizeofMsghdr = 0x38
 
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go

@@ -51,8 +51,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 	sizeofMsghdr = 0x38
 
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go

@@ -52,8 +52,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 	sizeofMsghdr = 0x38
 
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go

@@ -51,8 +51,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 	sizeofMsghdr = 0x38
 
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go

@@ -50,8 +50,6 @@ const (
 	sizeofIovec  = 0x8
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 	sizeofMsghdr = 0x1c
 
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go

@@ -53,8 +53,6 @@ const (
 	sizeofIovec  = 0x10
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x30
 	sizeofMsghdr = 0x30
 
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 0 - 2
vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go

@@ -50,8 +50,6 @@ const (
 	sizeofIovec  = 0x8
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 	sizeofMsghdr = 0x1c
 
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c
 )
 )

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go

@@ -50,9 +50,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go

@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go

@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go

@@ -42,9 +42,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go

@@ -44,9 +44,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 	sizeofSockaddrInet6 = 0x1c

+ 50 - 0
vendor/golang.org/x/net/internal/socket/zsys_openbsd_mips64.go

@@ -0,0 +1,50 @@
+// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+// cgo -godefs defs_openbsd.go
+
+package socket
+
+type iovec struct {
+	Base *byte
+	Len  uint64
+}
+
+type msghdr struct {
+	Name       *byte
+	Namelen    uint32
+	Iov        *iovec
+	Iovlen     uint32
+	Control    *byte
+	Controllen uint32
+	Flags      int32
+}
+
+type cmsghdr struct {
+	Len   uint32
+	Level int32
+	Type  int32
+}
+
+type sockaddrInet struct {
+	Len    uint8
+	Family uint8
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	Zero   [8]int8
+}
+
+type sockaddrInet6 struct {
+	Len      uint8
+	Family   uint8
+	Port     uint16
+	Flowinfo uint32
+	Addr     [16]byte /* in6_addr */
+	Scope_id uint32
+}
+
+const (
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
+
+	sizeofSockaddrInet  = 0x10
+	sizeofSockaddrInet6 = 0x1c
+)

+ 2 - 3
vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go

@@ -43,9 +43,8 @@ type sockaddrInet6 struct {
 }
 }
 
 
 const (
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x20
 	sizeofSockaddrInet6 = 0x20

+ 32 - 0
vendor/golang.org/x/net/internal/socket/zsys_zos_s390x.go

@@ -0,0 +1,32 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package socket
+
+type iovec struct {
+	Base *byte
+	Len  uint64
+}
+
+type msghdr struct {
+	Name       *byte
+	Iov        *iovec
+	Control    *byte
+	Flags      int32
+	Namelen    uint32
+	Iovlen     int32
+	Controllen uint32
+}
+
+type cmsghdr struct {
+	Len   int32
+	Level int32
+	Type  int32
+}
+
+const (
+	sizeofCmsghdr       = 12
+	sizeofSockaddrInet  = 16
+	sizeofSockaddrInet6 = 28
+)

+ 1 - 1
vendor/golang.org/x/net/ipv4/control_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package ipv4
 package ipv4
 
 

+ 86 - 0
vendor/golang.org/x/net/ipv4/control_zos.go

@@ -0,0 +1,86 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ipv4
+
+import (
+	"net"
+	"unsafe"
+
+	"golang.org/x/net/internal/iana"
+	"golang.org/x/net/internal/socket"
+)
+
+func marshalPacketInfo(b []byte, cm *ControlMessage) []byte {
+	m := socket.ControlMessage(b)
+	m.MarshalHeader(iana.ProtocolIP, sysIP_PKTINFO, sizeofInetPktinfo)
+	if cm != nil {
+		pi := (*inetPktinfo)(unsafe.Pointer(&m.Data(sizeofInetPktinfo)[0]))
+		if ip := cm.Src.To4(); ip != nil {
+			copy(pi.Addr[:], ip)
+		}
+		if cm.IfIndex > 0 {
+			pi.setIfindex(cm.IfIndex)
+		}
+	}
+	return m.Next(sizeofInetPktinfo)
+}
+
+func parsePacketInfo(cm *ControlMessage, b []byte) {
+	pi := (*inetPktinfo)(unsafe.Pointer(&b[0]))
+	cm.IfIndex = int(pi.Ifindex)
+	if len(cm.Dst) < net.IPv4len {
+		cm.Dst = make(net.IP, net.IPv4len)
+	}
+	copy(cm.Dst, pi.Addr[:])
+}
+
+func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error {
+	opt.Lock()
+	defer opt.Unlock()
+	if so, ok := sockOpts[ssoReceiveTTL]; ok && cf&FlagTTL != 0 {
+		if err := so.SetInt(c, boolint(on)); err != nil {
+			return err
+		}
+		if on {
+			opt.set(FlagTTL)
+		} else {
+			opt.clear(FlagTTL)
+		}
+	}
+	if so, ok := sockOpts[ssoPacketInfo]; ok {
+		if cf&(FlagSrc|FlagDst|FlagInterface) != 0 {
+			if err := so.SetInt(c, boolint(on)); err != nil {
+				return err
+			}
+			if on {
+				opt.set(cf & (FlagSrc | FlagDst | FlagInterface))
+			} else {
+				opt.clear(cf & (FlagSrc | FlagDst | FlagInterface))
+			}
+		}
+	} else {
+		if so, ok := sockOpts[ssoReceiveDst]; ok && cf&FlagDst != 0 {
+			if err := so.SetInt(c, boolint(on)); err != nil {
+				return err
+			}
+			if on {
+				opt.set(FlagDst)
+			} else {
+				opt.clear(FlagDst)
+			}
+		}
+		if so, ok := sockOpts[ssoReceiveInterface]; ok && cf&FlagInterface != 0 {
+			if err := so.SetInt(c, boolint(on)); err != nil {
+				return err
+			}
+			if on {
+				opt.set(FlagInterface)
+			} else {
+				opt.clear(FlagInterface)
+			}
+		}
+	}
+	return nil
+}

+ 2 - 2
vendor/golang.org/x/net/ipv4/header.go

@@ -67,7 +67,7 @@ func (h *Header) Marshal() ([]byte, error) {
 	b[1] = byte(h.TOS)
 	b[1] = byte(h.TOS)
 	flagsAndFragOff := (h.FragOff & 0x1fff) | int(h.Flags<<13)
 	flagsAndFragOff := (h.FragOff & 0x1fff) | int(h.Flags<<13)
 	switch runtime.GOOS {
 	switch runtime.GOOS {
-	case "darwin", "dragonfly", "netbsd":
+	case "darwin", "ios", "dragonfly", "netbsd":
 		socket.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen))
 		socket.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen))
 		socket.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
 		socket.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
 	case "freebsd":
 	case "freebsd":
@@ -126,7 +126,7 @@ func (h *Header) Parse(b []byte) error {
 	h.Src = net.IPv4(b[12], b[13], b[14], b[15])
 	h.Src = net.IPv4(b[12], b[13], b[14], b[15])
 	h.Dst = net.IPv4(b[16], b[17], b[18], b[19])
 	h.Dst = net.IPv4(b[16], b[17], b[18], b[19])
 	switch runtime.GOOS {
 	switch runtime.GOOS {
-	case "darwin", "dragonfly", "netbsd":
+	case "darwin", "ios", "dragonfly", "netbsd":
 		h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4])) + hdrlen
 		h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4])) + hdrlen
 		h.FragOff = int(socket.NativeEndian.Uint16(b[6:8]))
 		h.FragOff = int(socket.NativeEndian.Uint16(b[6:8]))
 	case "freebsd":
 	case "freebsd":

+ 1 - 1
vendor/golang.org/x/net/ipv4/payload_cmsg.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
 
 
 package ipv4
 package ipv4
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv4/payload_nocmsg.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos
 
 
 package ipv4
 package ipv4
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv4/sockopt_posix.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos
 
 
 package ipv4
 package ipv4
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv4/sockopt_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package ipv4
 package ipv4
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv4/sys_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package ipv4
 package ipv4
 
 

+ 55 - 0
vendor/golang.org/x/net/ipv4/sys_zos.go

@@ -0,0 +1,55 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ipv4
+
+import (
+	"net"
+	"syscall"
+	"unsafe"
+
+	"golang.org/x/net/internal/iana"
+	"golang.org/x/net/internal/socket"
+)
+
+var (
+	ctlOpts = [ctlMax]ctlOpt{
+		ctlPacketInfo: {sysIP_PKTINFO, sizeofInetPktinfo, marshalPacketInfo, parsePacketInfo},
+	}
+
+	sockOpts = map[int]*sockOpt{
+		ssoMulticastTTL:       {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}},
+		ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}},
+		ssoMulticastLoopback:  {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 1}},
+		ssoPacketInfo:         {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}},
+		ssoJoinGroup:          {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoLeaveGroup:         {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoJoinSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoLeaveSourceGroup:   {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoBlockSourceGroup:   {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+	}
+)
+
+func (pi *inetPktinfo) setIfindex(i int) {
+	pi.Ifindex = uint32(i)
+}
+
+func (gr *groupReq) setGroup(grp net.IP) {
+	sa := (*sockaddrInet4)(unsafe.Pointer(&gr.Group))
+	sa.Family = syscall.AF_INET
+	sa.Len = sizeofSockaddrInet4
+	copy(sa.Addr[:], grp)
+}
+
+func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) {
+	sa := (*sockaddrInet4)(unsafe.Pointer(&gsr.Group))
+	sa.Family = syscall.AF_INET
+	sa.Len = sizeofSockaddrInet4
+	copy(sa.Addr[:], grp)
+	sa = (*sockaddrInet4)(unsafe.Pointer(&gsr.Source))
+	sa.Family = syscall.AF_INET
+	sa.Len = sizeofSockaddrInet4
+	copy(sa.Addr[:], src)
+}

+ 80 - 0
vendor/golang.org/x/net/ipv4/zsys_zos_s390x.go

@@ -0,0 +1,80 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Hand edited based on zerrors_zos_s390x.go
+// TODO(Bill O'Farrell): auto-generate.
+
+package ipv4
+
+const (
+	sysIP_ADD_MEMBERSHIP         = 5
+	sysIP_ADD_SOURCE_MEMBERSHIP  = 12
+	sysIP_BLOCK_SOURCE           = 10
+	sysIP_DEFAULT_MULTICAST_LOOP = 1
+	sysIP_DEFAULT_MULTICAST_TTL  = 1
+	sysIP_DROP_MEMBERSHIP        = 6
+	sysIP_DROP_SOURCE_MEMBERSHIP = 13
+	sysIP_MAX_MEMBERSHIPS        = 20
+	sysIP_MULTICAST_IF           = 7
+	sysIP_MULTICAST_LOOP         = 4
+	sysIP_MULTICAST_TTL          = 3
+	sysIP_OPTIONS                = 1
+	sysIP_PKTINFO                = 101
+	sysIP_RECVPKTINFO            = 102
+	sysIP_TOS                    = 2
+	sysIP_UNBLOCK_SOURCE         = 11
+
+	sysMCAST_JOIN_GROUP         = 40
+	sysMCAST_LEAVE_GROUP        = 41
+	sysMCAST_JOIN_SOURCE_GROUP  = 42
+	sysMCAST_LEAVE_SOURCE_GROUP = 43
+	sysMCAST_BLOCK_SOURCE       = 44
+	sysMCAST_UNBLOCK_SOURCE     = 45
+
+	sizeofIPMreq          = 8
+	sizeofSockaddrInet4   = 16
+	sizeofSockaddrStorage = 128
+	sizeofGroupReq        = 136
+	sizeofGroupSourceReq  = 264
+	sizeofInetPktinfo     = 8
+)
+
+type sockaddrInet4 struct {
+	Len    uint8
+	Family uint8
+	Port   uint16
+	Addr   [4]byte
+	Zero   [8]uint8
+}
+
+type inetPktinfo struct {
+	Addr    [4]byte
+	Ifindex uint32
+}
+
+type sockaddrStorage struct {
+	Len      uint8
+	Family   byte
+	ss_pad1  [6]byte
+	ss_align int64
+	ss_pad2  [112]byte
+}
+
+type groupReq struct {
+	Interface uint32
+	reserved  uint32
+	Group     sockaddrStorage
+}
+
+type groupSourceReq struct {
+	Interface uint32
+	reserved  uint32
+	Group     sockaddrStorage
+	Source    sockaddrStorage
+}
+
+type ipMreq struct {
+	Multiaddr [4]byte /* in_addr */
+	Interface [4]byte /* in_addr */
+}

+ 1 - 1
vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/control_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/control_unix.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/icmp_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package ipv6
 package ipv6
 
 

+ 29 - 0
vendor/golang.org/x/net/ipv6/icmp_zos.go

@@ -0,0 +1,29 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ipv6
+
+func (f *icmpv6Filter) accept(typ ICMPType) {
+	f.Filt[typ>>5] |= 1 << (uint32(typ) & 31)
+
+}
+
+func (f *icmpv6Filter) block(typ ICMPType) {
+	f.Filt[typ>>5] &^= 1 << (uint32(typ) & 31)
+
+}
+
+func (f *icmpv6Filter) setAll(block bool) {
+	for i := range f.Filt {
+		if block {
+			f.Filt[i] = 0
+		} else {
+			f.Filt[i] = 1<<32 - 1
+		}
+	}
+}
+
+func (f *icmpv6Filter) willBlock(typ ICMPType) bool {
+	return f.Filt[typ>>5]&(1<<(uint32(typ)&31)) == 0
+}

+ 1 - 1
vendor/golang.org/x/net/ipv6/payload_cmsg.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/payload_nocmsg.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/sockopt_posix.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/sockopt_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/sys_ssmreq.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build aix darwin freebsd linux solaris
+// +build aix darwin freebsd linux solaris zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!freebsd,!linux,!solaris
+// +build !aix,!darwin,!freebsd,!linux,!solaris,!zos
 
 
 package ipv6
 package ipv6
 
 

+ 1 - 1
vendor/golang.org/x/net/ipv6/sys_stub.go

@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 // license that can be found in the LICENSE file.
 
 
-// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos
 
 
 package ipv6
 package ipv6
 
 

+ 70 - 0
vendor/golang.org/x/net/ipv6/sys_zos.go

@@ -0,0 +1,70 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ipv6
+
+import (
+	"net"
+	"syscall"
+	"unsafe"
+
+	"golang.org/x/net/internal/iana"
+	"golang.org/x/net/internal/socket"
+)
+
+var (
+	ctlOpts = [ctlMax]ctlOpt{
+		ctlHopLimit:   {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
+		ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
+		ctlPathMTU:    {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
+	}
+
+	sockOpts = map[int]*sockOpt{
+		ssoTrafficClass:        {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}},
+		ssoHopLimit:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}},
+		ssoMulticastInterface:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}},
+		ssoMulticastHopLimit:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}},
+		ssoMulticastLoopback:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}},
+		ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}},
+		ssoReceiveHopLimit:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}},
+		ssoReceivePacketInfo:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}},
+		ssoReceivePathMTU:      {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}},
+		ssoChecksum:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}},
+		ssoICMPFilter:          {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}},
+		ssoJoinGroup:           {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoLeaveGroup:          {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoJoinSourceGroup:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoLeaveSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoBlockSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoUnblockSourceGroup:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+	}
+)
+
+func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) {
+	sa.Family = syscall.AF_INET6
+	copy(sa.Addr[:], ip)
+	sa.Scope_id = uint32(i)
+}
+
+func (pi *inet6Pktinfo) setIfindex(i int) {
+	pi.Ifindex = uint32(i)
+}
+
+func (gr *groupReq) setGroup(grp net.IP) {
+	sa := (*sockaddrInet6)(unsafe.Pointer(&gr.Group))
+	sa.Family = syscall.AF_INET6
+	sa.Len = sizeofSockaddrInet6
+	copy(sa.Addr[:], grp)
+}
+
+func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) {
+	sa := (*sockaddrInet6)(unsafe.Pointer(&gsr.Group))
+	sa.Family = syscall.AF_INET6
+	sa.Len = sizeofSockaddrInet6
+	copy(sa.Addr[:], grp)
+	sa = (*sockaddrInet6)(unsafe.Pointer(&gsr.Source))
+	sa.Family = syscall.AF_INET6
+	sa.Len = sizeofSockaddrInet6
+	copy(sa.Addr[:], src)
+}

+ 106 - 0
vendor/golang.org/x/net/ipv6/zsys_zos_s390x.go

@@ -0,0 +1,106 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Hand edited based on zerrors_zos_s390x.go
+// TODO(Bill O'Farrell): auto-generate.
+
+package ipv6
+
+const (
+	sysIPV6_ADDR_PREFERENCES  = 32
+	sysIPV6_CHECKSUM          = 19
+	sysIPV6_DONTFRAG          = 29
+	sysIPV6_DSTOPTS           = 23
+	sysIPV6_HOPLIMIT          = 11
+	sysIPV6_HOPOPTS           = 22
+	sysIPV6_JOIN_GROUP        = 5
+	sysIPV6_LEAVE_GROUP       = 6
+	sysIPV6_MULTICAST_HOPS    = 9
+	sysIPV6_MULTICAST_IF      = 7
+	sysIPV6_MULTICAST_LOOP    = 4
+	sysIPV6_NEXTHOP           = 20
+	sysIPV6_PATHMTU           = 12
+	sysIPV6_PKTINFO           = 13
+	sysIPV6_PREFER_SRC_CGA    = 0x10
+	sysIPV6_PREFER_SRC_COA    = 0x02
+	sysIPV6_PREFER_SRC_HOME   = 0x01
+	sysIPV6_PREFER_SRC_NONCGA = 0x20
+	sysIPV6_PREFER_SRC_PUBLIC = 0x08
+	sysIPV6_PREFER_SRC_TMP    = 0x04
+	sysIPV6_RECVDSTOPTS       = 28
+	sysIPV6_RECVHOPLIMIT      = 14
+	sysIPV6_RECVHOPOPTS       = 26
+	sysIPV6_RECVPATHMTU       = 16
+	sysIPV6_RECVPKTINFO       = 15
+	sysIPV6_RECVRTHDR         = 25
+	sysIPV6_RECVTCLASS        = 31
+	sysIPV6_RTHDR             = 21
+	sysIPV6_RTHDRDSTOPTS      = 24
+	sysIPV6_RTHDR_TYPE_0      = 0
+	sysIPV6_TCLASS            = 30
+	sysIPV6_UNICAST_HOPS      = 3
+	sysIPV6_USE_MIN_MTU       = 18
+	sysIPV6_V6ONLY            = 10
+
+	sysMCAST_JOIN_GROUP         = 40
+	sysMCAST_LEAVE_GROUP        = 41
+	sysMCAST_JOIN_SOURCE_GROUP  = 42
+	sysMCAST_LEAVE_SOURCE_GROUP = 43
+	sysMCAST_BLOCK_SOURCE       = 44
+	sysMCAST_UNBLOCK_SOURCE     = 45
+
+	sysICMP6_FILTER = 0x1
+
+	sizeofSockaddrStorage = 128
+	sizeofICMPv6Filter    = 32
+	sizeofInet6Pktinfo    = 20
+	sizeofIPv6Mtuinfo     = 32
+	sizeofSockaddrInet6   = 28
+	sizeofGroupReq        = 136
+	sizeofGroupSourceReq  = 264
+)
+
+type sockaddrStorage struct {
+	Len      uint8
+	Family   byte
+	ss_pad1  [6]byte
+	ss_align int64
+	ss_pad2  [112]byte
+}
+
+type sockaddrInet6 struct {
+	Len      uint8
+	Family   uint8
+	Port     uint16
+	Flowinfo uint32
+	Addr     [16]byte
+	Scope_id uint32
+}
+
+type inet6Pktinfo struct {
+	Addr    [16]byte
+	Ifindex uint32
+}
+
+type ipv6Mtuinfo struct {
+	Addr sockaddrInet6
+	Mtu  uint32
+}
+
+type groupReq struct {
+	Interface uint32
+	reserved  uint32
+	Group     sockaddrStorage
+}
+
+type groupSourceReq struct {
+	Interface uint32
+	reserved  uint32
+	Group     sockaddrStorage
+	Source    sockaddrStorage
+}
+
+type icmpv6Filter struct {
+	Filt [8]uint32
+}

Some files were not shown because too many files changed in this diff