From d873e642cd78cd4943157bcef7cc27f8f4e9d3cc Mon Sep 17 00:00:00 2001 From: Mikio Hara Date: Mon, 28 Apr 2014 11:34:52 +0900 Subject: [PATCH] syscall: add missing SendmsgN for NaCl Update #7645 LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/98790044 --- src/pkg/syscall/net_nacl.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/pkg/syscall/net_nacl.go b/src/pkg/syscall/net_nacl.go index aaa8b71119..b9488f48d1 100644 --- a/src/pkg/syscall/net_nacl.go +++ b/src/pkg/syscall/net_nacl.go @@ -808,11 +808,26 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn, recvflags int, from Soc } func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) error { + _, err := SendmsgN(fd, p, oob, to, flags) + return err +} + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { f, err := fdToNetFile(fd) if err != nil { - return err + return 0, err } - return f.sendto(p, flags, to) + switch f.sotype { + case SOCK_STREAM: + n, err = f.write(p) + case SOCK_DGRAM: + n = len(p) + err = f.sendto(p, flags, to) + } + if err != nil { + return 0, err + } + return n, nil } func GetsockoptInt(fd, level, opt int) (value int, err error) { -- 2.50.0