Просмотр исходного кода

Fix a potential bug with udp ipv4 only on darwin (#1532)

Nate Brown 11 месяцев назад
Родитель
Сommit
99faab505c
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      udp/udp_darwin.go

+ 3 - 3
udp/udp_darwin.go

@@ -98,9 +98,9 @@ func (u *StdConn) WriteTo(b []byte, ap netip.AddrPort) error {
 			return ErrInvalidIPv6RemoteForSocket
 			return ErrInvalidIPv6RemoteForSocket
 		}
 		}
 
 
-		var rsa unix.RawSockaddrInet6
-		rsa.Family = unix.AF_INET6
-		rsa.Addr = ap.Addr().As16()
+		var rsa unix.RawSockaddrInet4
+		rsa.Family = unix.AF_INET
+		rsa.Addr = ap.Addr().As4()
 		binary.BigEndian.PutUint16((*[2]byte)(unsafe.Pointer(&rsa.Port))[:], ap.Port())
 		binary.BigEndian.PutUint16((*[2]byte)(unsafe.Pointer(&rsa.Port))[:], ap.Port())
 		sa = unsafe.Pointer(&rsa)
 		sa = unsafe.Pointer(&rsa)
 		addrLen = syscall.SizeofSockaddrInet4
 		addrLen = syscall.SizeofSockaddrInet4