(t *kernel.Task, src usermem.IOSequence, to []byte, sysflags int)
| 737 | } |
| 738 | |
| 739 | func (s *socketOperations) send(t *kernel.Task, src usermem.IOSequence, to []byte, sysflags int) (int64, error) { |
| 740 | bytes := src.NumBytes() |
| 741 | // If src is empty, let plugin stack handle sending 0-byte data based on protocol. |
| 742 | if bytes == 0 { |
| 743 | rc := cgo.Sendto(s.fd, 0, 0, sysflags, to) |
| 744 | ret, err := translateReturn(rc) |
| 745 | return int64(ret), err |
| 746 | } |
| 747 | |
| 748 | rw := getReadWriter(s.fd) |
| 749 | rw.to = to |
| 750 | n, err := src.CopyInTo(t, rw) |
| 751 | putReadWriter(rw) |
| 752 | return n, err |
| 753 | } |
| 754 | |
| 755 | // SendMsg implements socket.Socket.SendMsg. |
| 756 | func (s *socketOperations) SendMsg(t *kernel.Task, src usermem.IOSequence, to []byte, flags int, haveDeadline bool, deadline ktime.Time, controlMessages socket.ControlMessages) (int, *syserr.Error) { |
no test coverage detected