From e419ab6452a9973025f95d3a9702abe1c7a6df04 Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Sat, 26 Apr 2014 06:52:37 +0900 Subject: [PATCH] net: make WriteMsg{IP,UDP,Unix} return the correct number of bytes transferred Fixes #7645 LGTM=iant, bradfitz R=iant, bradfitz CC=golang-codereviews https://golang.org/cl/90170046 --- src/pkg/net/fd_unix.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pkg/net/fd_unix.go b/src/pkg/net/fd_unix.go index dbfbf2bd5c..5ed0d3ac5a 100644 --- a/src/pkg/net/fd_unix.go +++ b/src/pkg/net/fd_unix.go @@ -375,7 +375,7 @@ func (fd *netFD) writeMsg(p []byte, oob []byte, sa syscall.Sockaddr) (n int, oob return 0, 0, &OpError{"write", fd.net, fd.raddr, err} } for { - err = syscall.Sendmsg(fd.sysfd, p, oob, sa, 0) + n, err = syscall.SendmsgN(fd.sysfd, p, oob, sa, 0) if err == syscall.EAGAIN { if err = fd.pd.WaitWrite(); err == nil { continue @@ -384,7 +384,6 @@ func (fd *netFD) writeMsg(p []byte, oob []byte, sa syscall.Sockaddr) (n int, oob break } if err == nil { - n = len(p) oobn = len(oob) } else { err = &OpError{"write", fd.net, fd.raddr, err} -- 2.51.0