aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/net/internal/socket/rawconn_msg.go
diff options
context:
space:
mode:
authorTyler Davis <tydavis@gmail.com>2021-02-15 20:47:30 +0000
committerTyler Davis <tydavis@gmail.com>2021-02-15 20:47:30 +0000
commita687ebabb6589ebb36a9c385f583a19ac462b831 (patch)
tree4112f2272dfe6df7f106819c1381ab59d7ea5d2f /vendor/golang.org/x/net/internal/socket/rawconn_msg.go
parentf22b6da3c7964a23d93269b6c5de9f322c3837a8 (diff)
downloaddnstracker-a687ebabb6589ebb36a9c385f583a19ac462b831.tar.gz
dnstracker-a687ebabb6589ebb36a9c385f583a19ac462b831.zip
Update go modules for 1.15
Diffstat (limited to 'vendor/golang.org/x/net/internal/socket/rawconn_msg.go')
-rw-r--r--vendor/golang.org/x/net/internal/socket/rawconn_msg.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go
index b21d2e6..610b1a1 100644
--- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go
+++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go
@@ -2,17 +2,18 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build go1.9
-// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos
package socket
import (
"os"
+ "runtime"
"syscall"
)
func (c *Conn) recvMsg(m *Message, flags int) error {
+ m.raceWrite()
var h msghdr
vs := make([]iovec, len(m.Buffers))
var sa []byte
@@ -24,7 +25,7 @@ func (c *Conn) recvMsg(m *Message, flags int) error {
var n int
fn := func(s uintptr) bool {
n, operr = recvmsg(s, &h, flags)
- if operr == syscall.EAGAIN {
+ if operr == syscall.EAGAIN || (runtime.GOOS == "zos" && operr == syscall.EWOULDBLOCK) {
return false
}
return true
@@ -49,6 +50,7 @@ func (c *Conn) recvMsg(m *Message, flags int) error {
}
func (c *Conn) sendMsg(m *Message, flags int) error {
+ m.raceRead()
var h msghdr
vs := make([]iovec, len(m.Buffers))
var sa []byte
@@ -60,7 +62,7 @@ func (c *Conn) sendMsg(m *Message, flags int) error {
var n int
fn := func(s uintptr) bool {
n, operr = sendmsg(s, &h, flags)
- if operr == syscall.EAGAIN {
+ if operr == syscall.EAGAIN || (runtime.GOOS == "zos" && operr == syscall.EWOULDBLOCK) {
return false
}
return true