if o.rsa == nil {
o.rsa = new(syscall.RawSockaddrAny)
}
- len := sockaddrInet4ToRaw(o.rsa, sa)
+ var nameLen int32
+ if sa != nil {
+ nameLen = sockaddrInet4ToRaw(o.rsa, sa)
+ }
msg := newWSAMsg(p, oob, 0)
msg.Name = (syscall.Pointer)(unsafe.Pointer(o.rsa))
- msg.Namelen = len
+ msg.Namelen = nameLen
n, err := fd.execIO(o, func(o *operation) (qty uint32, err error) {
err = windows.WSASendMsg(fd.Sysfd, &msg, 0, nil, &o.o, nil)
return qty, err
o.rsa = new(syscall.RawSockaddrAny)
}
msg := newWSAMsg(p, oob, 0)
- len := sockaddrInet6ToRaw(o.rsa, sa)
+ var nameLen int32
+ if sa != nil {
+ nameLen = sockaddrInet6ToRaw(o.rsa, sa)
+ }
msg.Name = (syscall.Pointer)(unsafe.Pointer(o.rsa))
- msg.Namelen = len
+ msg.Namelen = nameLen
n, err := fd.execIO(o, func(o *operation) (qty uint32, err error) {
err = windows.WSASendMsg(fd.Sysfd, &msg, 0, nil, &o.o, nil)
return qty, err