Changeset 69 in code for trunk/vendor/golang.org/x/sys/unix/syscall_aix.go
- Timestamp:
- Sep 13, 2023, 10:49:50 AM (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/vendor/golang.org/x/sys/unix/syscall_aix.go
r67 r69 219 219 220 220 func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { 221 // Recvmsg not implemented on AIX 222 return -1, -1, -1, ENOSYS 221 var msg Msghdr 222 msg.Name = (*byte)(unsafe.Pointer(rsa)) 223 msg.Namelen = uint32(SizeofSockaddrAny) 224 var dummy byte 225 if len(oob) > 0 { 226 // receive at least one normal byte 227 if emptyIovecs(iov) { 228 var iova [1]Iovec 229 iova[0].Base = &dummy 230 iova[0].SetLen(1) 231 iov = iova[:] 232 } 233 msg.Control = (*byte)(unsafe.Pointer(&oob[0])) 234 msg.SetControllen(len(oob)) 235 } 236 if len(iov) > 0 { 237 msg.Iov = &iov[0] 238 msg.SetIovlen(len(iov)) 239 } 240 if n, err = recvmsg(fd, &msg, flags); n == -1 { 241 return 242 } 243 oobn = int(msg.Controllen) 244 recvflags = int(msg.Flags) 245 return 223 246 } 224 247 225 248 func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { 226 // SendmsgN not implemented on AIX 227 return -1, ENOSYS 249 var msg Msghdr 250 msg.Name = (*byte)(unsafe.Pointer(ptr)) 251 msg.Namelen = uint32(salen) 252 var dummy byte 253 var empty bool 254 if len(oob) > 0 { 255 // send at least one normal byte 256 empty = emptyIovecs(iov) 257 if empty { 258 var iova [1]Iovec 259 iova[0].Base = &dummy 260 iova[0].SetLen(1) 261 iov = iova[:] 262 } 263 msg.Control = (*byte)(unsafe.Pointer(&oob[0])) 264 msg.SetControllen(len(oob)) 265 } 266 if len(iov) > 0 { 267 msg.Iov = &iov[0] 268 msg.SetIovlen(len(iov)) 269 } 270 if n, err = sendmsg(fd, &msg, flags); err != nil { 271 return 0, err 272 } 273 if len(oob) > 0 && empty { 274 n = 0 275 } 276 return n, nil 228 277 } 229 278
Note:
See TracChangeset
for help on using the changeset viewer.