net: fix inconsistent error values on Write
This change fixes inconsistent error values on Write,
WriteTo{,UDP,IP,Unix} and WriteMsg{UDP,IP,Unix}.
Updates #4856.
Change-Id: I4208ab6a0650455ad7d70a80a2d6169351d6055f
Reviewed-on: https://go-review.googlesource.com/8993
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/net/fd_unix.go b/src/net/fd_unix.go
index 08c8568..99d7a93 100644
--- a/src/net/fd_unix.go
+++ b/src/net/fd_unix.go
@@ -298,7 +298,7 @@
}
defer fd.writeUnlock()
if err := fd.pd.PrepareWrite(); err != nil {
- return 0, &OpError{"write", fd.net, fd.raddr, err}
+ return 0, err
}
for {
var n int
@@ -323,9 +323,6 @@
break
}
}
- if err != nil {
- err = &OpError{"write", fd.net, fd.raddr, err}
- }
return nn, err
}
@@ -335,7 +332,7 @@
}
defer fd.writeUnlock()
if err := fd.pd.PrepareWrite(); err != nil {
- return 0, &OpError{"write", fd.net, fd.raddr, err}
+ return 0, err
}
for {
err = syscall.Sendto(fd.sysfd, p, 0, sa)
@@ -348,8 +345,6 @@
}
if err == nil {
n = len(p)
- } else {
- err = &OpError{"write", fd.net, fd.raddr, err}
}
return
}
@@ -360,7 +355,7 @@
}
defer fd.writeUnlock()
if err := fd.pd.PrepareWrite(); err != nil {
- return 0, 0, &OpError{"write", fd.net, fd.raddr, err}
+ return 0, 0, err
}
for {
n, err = syscall.SendmsgN(fd.sysfd, p, oob, sa, 0)
@@ -373,8 +368,6 @@
}
if err == nil {
oobn = len(oob)
- } else {
- err = &OpError{"write", fd.net, fd.raddr, err}
}
return
}