Skip to content

Commit 75b561c

Browse files
committed
🦴 conn: fix build on 32-bit linux
1 parent ce609ef commit 75b561c

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

conn/cmsg_linux.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@ const socketControlMessageBufferSize = unix.SizeofCmsghdr + alignedSizeofInet6Pk
1313
unix.SizeofCmsghdr + alignedSizeofGROSegmentSize
1414

1515
const (
16-
sizeofGSOSegmentSize = int(unsafe.Sizeof(uint16(0)))
17-
sizeofGROSegmentSize = int(unsafe.Sizeof(int32(0)))
16+
sizeofGSOSegmentSize = 2 // int(unsafe.Sizeof(uint16(0)))
17+
sizeofGROSegmentSize = 4 // int(unsafe.Sizeof(int32(0)))
1818
)
1919

20-
func cmsgAlign(n uint64) uint64 {
21-
return (n + unix.SizeofPtr - 1) & ^uint64(unix.SizeofPtr-1)
20+
func cmsgAlign(n int) int {
21+
return (n + unix.SizeofPtr - 1) & ^(unix.SizeofPtr - 1)
2222
}
2323

2424
func parseSocketControlMessage(cmsg []byte) (m SocketControlMessage, err error) {
2525
for len(cmsg) >= unix.SizeofCmsghdr {
2626
cmsghdr := (*unix.Cmsghdr)(unsafe.Pointer(unsafe.SliceData(cmsg)))
27-
msgSize := cmsgAlign(cmsghdr.Len)
28-
if cmsghdr.Len < unix.SizeofCmsghdr || int(msgSize) > len(cmsg) {
27+
msgSize := cmsgAlign(int(cmsghdr.Len))
28+
if cmsghdr.Len < unix.SizeofCmsghdr || msgSize > len(cmsg) {
2929
return m, fmt.Errorf("invalid control message length %d", cmsghdr.Len)
3030
}
3131

@@ -106,7 +106,7 @@ func (m SocketControlMessage) appendTo(b []byte) []byte {
106106
b, msgBuf = slicehelper.Extend(b, unix.SizeofCmsghdr+alignedSizeofGSOSegmentSize)
107107
cmsghdr := (*unix.Cmsghdr)(unsafe.Pointer(unsafe.SliceData(msgBuf)))
108108
*cmsghdr = unix.Cmsghdr{
109-
Len: unix.SizeofCmsghdr + uint64(sizeofGSOSegmentSize),
109+
Len: unix.SizeofCmsghdr + sizeofGSOSegmentSize,
110110
Level: unix.IPPROTO_UDP,
111111
Type: unix.UDP_SEGMENT,
112112
}

0 commit comments

Comments
 (0)