internal/socket: use Cmsg{Len,Space} from golang.org/x/sys/unix

Instead of duplicating the logic for cmsg alignment, use CmsgLen and
CmsgSpace from golang.org/x/sys/unix. Moreover, this should simplify
adding new ports.

Change-Id: Ic3ac9cf14781eff5b8e4f34bfd2b1c8bd3b69341
Reviewed-on: https://go-review.googlesource.com/c/net/+/259058
Trust: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matt Layher <mdlayher@gmail.com>
diff --git a/internal/socket/cmsghdr_stub.go b/internal/socket/cmsghdr_stub.go
index e581011..8328b7d 100644
--- a/internal/socket/cmsghdr_stub.go
+++ b/internal/socket/cmsghdr_stub.go
@@ -6,9 +6,19 @@
 
 package socket
 
-type cmsghdr struct{}
+func controlHeaderLen() int {
+	return 0
+}
 
-const sizeofCmsghdr = 0
+func controlMessageLen(dataLen int) int {
+	return 0
+}
+
+func controlMessageSpace(dataLen int) int {
+	return 0
+}
+
+type cmsghdr struct{}
 
 func (h *cmsghdr) len() int { return 0 }
 func (h *cmsghdr) lvl() int { return 0 }
diff --git a/internal/socket/cmsghdr_unix.go b/internal/socket/cmsghdr_unix.go
new file mode 100644
index 0000000..c2b2b65
--- /dev/null
+++ b/internal/socket/cmsghdr_unix.go
@@ -0,0 +1,21 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package socket
+
+import "golang.org/x/sys/unix"
+
+func controlHeaderLen() int {
+	return unix.CmsgLen(0)
+}
+
+func controlMessageLen(dataLen int) int {
+	return unix.CmsgLen(dataLen)
+}
+
+func controlMessageSpace(dataLen int) int {
+	return unix.CmsgSpace(dataLen)
+}
diff --git a/internal/socket/defs_aix.go b/internal/socket/defs_aix.go
index ae1b21c..90090d0 100644
--- a/internal/socket/defs_aix.go
+++ b/internal/socket/defs_aix.go
@@ -29,9 +29,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/defs_darwin.go b/internal/socket/defs_darwin.go
index b780bc6..ffb6d8e 100644
--- a/internal/socket/defs_darwin.go
+++ b/internal/socket/defs_darwin.go
@@ -27,9 +27,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/defs_dragonfly.go b/internal/socket/defs_dragonfly.go
index b780bc6..ffb6d8e 100644
--- a/internal/socket/defs_dragonfly.go
+++ b/internal/socket/defs_dragonfly.go
@@ -27,9 +27,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/defs_freebsd.go b/internal/socket/defs_freebsd.go
index b780bc6..ffb6d8e 100644
--- a/internal/socket/defs_freebsd.go
+++ b/internal/socket/defs_freebsd.go
@@ -27,9 +27,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/defs_linux.go b/internal/socket/defs_linux.go
index 85bb745..3582439 100644
--- a/internal/socket/defs_linux.go
+++ b/internal/socket/defs_linux.go
@@ -31,9 +31,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/defs_netbsd.go b/internal/socket/defs_netbsd.go
index 5bfdd46..379e157 100644
--- a/internal/socket/defs_netbsd.go
+++ b/internal/socket/defs_netbsd.go
@@ -29,9 +29,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/defs_openbsd.go b/internal/socket/defs_openbsd.go
index b780bc6..ffb6d8e 100644
--- a/internal/socket/defs_openbsd.go
+++ b/internal/socket/defs_openbsd.go
@@ -27,9 +27,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/defs_solaris.go b/internal/socket/defs_solaris.go
index b780bc6..ffb6d8e 100644
--- a/internal/socket/defs_solaris.go
+++ b/internal/socket/defs_solaris.go
@@ -27,9 +27,8 @@
 type sockaddrInet6 C.struct_sockaddr_in6
 
 const (
-	sizeofIovec   = C.sizeof_struct_iovec
-	sizeofMsghdr  = C.sizeof_struct_msghdr
-	sizeofCmsghdr = C.sizeof_struct_cmsghdr
+	sizeofIovec  = C.sizeof_struct_iovec
+	sizeofMsghdr = C.sizeof_struct_msghdr
 
 	sizeofSockaddrInet  = C.sizeof_struct_sockaddr_in
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
diff --git a/internal/socket/socket.go b/internal/socket/socket.go
index 23571b8..dba47bf 100644
--- a/internal/socket/socket.go
+++ b/internal/socket/socket.go
@@ -90,17 +90,9 @@
 	return o.set(c, b)
 }
 
-func controlHeaderLen() int {
-	return roundup(sizeofCmsghdr)
-}
-
-func controlMessageLen(dataLen int) int {
-	return roundup(sizeofCmsghdr) + dataLen
-}
-
 // ControlMessageSpace returns the whole length of control message.
 func ControlMessageSpace(dataLen int) int {
-	return roundup(sizeofCmsghdr) + roundup(dataLen)
+	return controlMessageSpace(dataLen)
 }
 
 // A ControlMessage represents the head message in a stream of control
diff --git a/internal/socket/sys.go b/internal/socket/sys.go
index ee492ba..4a26af1 100644
--- a/internal/socket/sys.go
+++ b/internal/socket/sys.go
@@ -9,13 +9,8 @@
 	"unsafe"
 )
 
-var (
-	// NativeEndian is the machine native endian implementation of
-	// ByteOrder.
-	NativeEndian binary.ByteOrder
-
-	kernelAlign int
-)
+// NativeEndian is the machine native endian implementation of ByteOrder.
+var NativeEndian binary.ByteOrder
 
 func init() {
 	i := uint32(1)
@@ -25,9 +20,4 @@
 	} else {
 		NativeEndian = binary.BigEndian
 	}
-	kernelAlign = probeProtocolStack()
-}
-
-func roundup(l int) int {
-	return (l + kernelAlign - 1) &^ (kernelAlign - 1)
 }
diff --git a/internal/socket/sys_bsdvar.go b/internal/socket/sys_bsdvar.go
deleted file mode 100644
index 6e7e3d3..0000000
--- a/internal/socket/sys_bsdvar.go
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build aix freebsd netbsd openbsd
-
-package socket
-
-import (
-	"runtime"
-	"unsafe"
-)
-
-func probeProtocolStack() int {
-	if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" {
-		return 16
-	}
-	if (runtime.GOOS == "netbsd" || runtime.GOOS == "openbsd") && runtime.GOARCH == "arm" {
-		return 8
-	}
-	if runtime.GOOS == "aix" {
-		return 1
-	}
-	var p uintptr
-	return int(unsafe.Sizeof(p))
-}
diff --git a/internal/socket/sys_darwin.go b/internal/socket/sys_darwin.go
deleted file mode 100644
index b17d223..0000000
--- a/internal/socket/sys_darwin.go
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package socket
-
-func probeProtocolStack() int { return 4 }
diff --git a/internal/socket/sys_dragonfly.go b/internal/socket/sys_dragonfly.go
deleted file mode 100644
index ed0448f..0000000
--- a/internal/socket/sys_dragonfly.go
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2017 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package socket
-
-import (
-	"sync"
-	"syscall"
-	"unsafe"
-)
-
-// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h
-var (
-	osreldateOnce sync.Once
-	osreldate     uint32
-)
-
-// First __DragonFly_version after September 2019 ABI changes
-// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html
-const _dragonflyABIChangeVersion = 500705
-
-func probeProtocolStack() int {
-	osreldateOnce.Do(func() { osreldate, _ = syscall.SysctlUint32("kern.osreldate") })
-	var p uintptr
-	if int(unsafe.Sizeof(p)) == 8 && osreldate >= _dragonflyABIChangeVersion {
-		return int(unsafe.Sizeof(p))
-	}
-	// 64-bit Dragonfly before the September 2019 ABI changes still requires
-	// 32-bit aligned access to network subsystem.
-	return 4
-}
diff --git a/internal/socket/sys_linux.go b/internal/socket/sys_linux.go
index 1559521..8b03cd6 100644
--- a/internal/socket/sys_linux.go
+++ b/internal/socket/sys_linux.go
@@ -11,11 +11,6 @@
 	"unsafe"
 )
 
-func probeProtocolStack() int {
-	var p uintptr
-	return int(unsafe.Sizeof(p))
-}
-
 func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) {
 	n, _, errno := syscall.Syscall6(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0)
 	return int(n), errnoErr(errno)
diff --git a/internal/socket/sys_linux_386.go b/internal/socket/sys_linux_386.go
index 235b2cc..6512153 100644
--- a/internal/socket/sys_linux_386.go
+++ b/internal/socket/sys_linux_386.go
@@ -9,8 +9,6 @@
 	"unsafe"
 )
 
-func probeProtocolStack() int { return 4 }
-
 const (
 	sysSETSOCKOPT = 0xe
 	sysGETSOCKOPT = 0xf
diff --git a/internal/socket/sys_linux_s390x.go b/internal/socket/sys_linux_s390x.go
index 327979e..6512153 100644
--- a/internal/socket/sys_linux_s390x.go
+++ b/internal/socket/sys_linux_s390x.go
@@ -9,8 +9,6 @@
 	"unsafe"
 )
 
-func probeProtocolStack() int { return 8 }
-
 const (
 	sysSETSOCKOPT = 0xe
 	sysGETSOCKOPT = 0xf
diff --git a/internal/socket/sys_solaris.go b/internal/socket/sys_solaris.go
index 66b5547..e79ca95 100644
--- a/internal/socket/sys_solaris.go
+++ b/internal/socket/sys_solaris.go
@@ -5,21 +5,10 @@
 package socket
 
 import (
-	"runtime"
 	"syscall"
 	"unsafe"
 )
 
-func probeProtocolStack() int {
-	switch runtime.GOARCH {
-	case "amd64":
-		return 4
-	default:
-		var p uintptr
-		return int(unsafe.Sizeof(p))
-	}
-}
-
 //go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so"
 //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so"
 //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so"
diff --git a/internal/socket/sys_stub.go b/internal/socket/sys_stub.go
index 0f61742..8e1e074 100644
--- a/internal/socket/sys_stub.go
+++ b/internal/socket/sys_stub.go
@@ -6,11 +6,7 @@
 
 package socket
 
-import (
-	"net"
-	"runtime"
-	"unsafe"
-)
+import "net"
 
 const (
 	sysAF_UNSPEC = 0x0
@@ -20,16 +16,6 @@
 	sysSOCK_RAW = 0x3
 )
 
-func probeProtocolStack() int {
-	switch runtime.GOARCH {
-	case "amd64p32", "mips64p32":
-		return 4
-	default:
-		var p uintptr
-		return int(unsafe.Sizeof(p))
-	}
-}
-
 func marshalInetAddr(ip net.IP, port int, zone string) []byte {
 	return nil
 }
diff --git a/internal/socket/zsys_aix_ppc64.go b/internal/socket/zsys_aix_ppc64.go
index e740c8f..93d923a 100644
--- a/internal/socket/zsys_aix_ppc64.go
+++ b/internal/socket/zsys_aix_ppc64.go
@@ -51,9 +51,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_darwin_386.go b/internal/socket/zsys_darwin_386.go
index 083bda5..150f980 100644
--- a/internal/socket/zsys_darwin_386.go
+++ b/internal/socket/zsys_darwin_386.go
@@ -42,9 +42,8 @@
 }
 
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_darwin_amd64.go b/internal/socket/zsys_darwin_amd64.go
index 55c6c9f..a686c95 100644
--- a/internal/socket/zsys_darwin_amd64.go
+++ b/internal/socket/zsys_darwin_amd64.go
@@ -44,9 +44,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_darwin_arm.go b/internal/socket/zsys_darwin_arm.go
index 083bda5..150f980 100644
--- a/internal/socket/zsys_darwin_arm.go
+++ b/internal/socket/zsys_darwin_arm.go
@@ -42,9 +42,8 @@
 }
 
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_darwin_arm64.go b/internal/socket/zsys_darwin_arm64.go
index 55c6c9f..a686c95 100644
--- a/internal/socket/zsys_darwin_arm64.go
+++ b/internal/socket/zsys_darwin_arm64.go
@@ -44,9 +44,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_dragonfly_amd64.go b/internal/socket/zsys_dragonfly_amd64.go
index 8b7d161..d45c197 100644
--- a/internal/socket/zsys_dragonfly_amd64.go
+++ b/internal/socket/zsys_dragonfly_amd64.go
@@ -44,9 +44,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_freebsd_386.go b/internal/socket/zsys_freebsd_386.go
index 3e71ff5..ffec860 100644
--- a/internal/socket/zsys_freebsd_386.go
+++ b/internal/socket/zsys_freebsd_386.go
@@ -42,9 +42,8 @@
 }
 
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_freebsd_amd64.go b/internal/socket/zsys_freebsd_amd64.go
index 238d90d..aa701ab 100644
--- a/internal/socket/zsys_freebsd_amd64.go
+++ b/internal/socket/zsys_freebsd_amd64.go
@@ -44,9 +44,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_freebsd_arm.go b/internal/socket/zsys_freebsd_arm.go
index 3e71ff5..ffec860 100644
--- a/internal/socket/zsys_freebsd_arm.go
+++ b/internal/socket/zsys_freebsd_arm.go
@@ -42,9 +42,8 @@
 }
 
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_freebsd_arm64.go b/internal/socket/zsys_freebsd_arm64.go
index 238d90d..aa701ab 100644
--- a/internal/socket/zsys_freebsd_arm64.go
+++ b/internal/socket/zsys_freebsd_arm64.go
@@ -44,9 +44,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_linux_386.go b/internal/socket/zsys_linux_386.go
index d33025b..0c847be 100644
--- a/internal/socket/zsys_linux_386.go
+++ b/internal/socket/zsys_linux_386.go
@@ -45,9 +45,8 @@
 }
 
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_linux_amd64.go b/internal/socket/zsys_linux_amd64.go
index b20d216..15e2aec 100644
--- a/internal/socket/zsys_linux_amd64.go
+++ b/internal/socket/zsys_linux_amd64.go
@@ -48,9 +48,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x38
-	sizeofCmsghdr = 0x10
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x38
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_linux_arm.go b/internal/socket/zsys_linux_arm.go
index 1bb10a4..0c847be 100644
--- a/internal/socket/zsys_linux_arm.go
+++ b/internal/socket/zsys_linux_arm.go
@@ -48,8 +48,6 @@
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_arm64.go b/internal/socket/zsys_linux_arm64.go
index 7f6e8a7..15e2aec 100644
--- a/internal/socket/zsys_linux_arm64.go
+++ b/internal/socket/zsys_linux_arm64.go
@@ -51,8 +51,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_mips.go b/internal/socket/zsys_linux_mips.go
index 1bb10a4..0c847be 100644
--- a/internal/socket/zsys_linux_mips.go
+++ b/internal/socket/zsys_linux_mips.go
@@ -48,8 +48,6 @@
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_mips64.go b/internal/socket/zsys_linux_mips64.go
index 7f6e8a7..15e2aec 100644
--- a/internal/socket/zsys_linux_mips64.go
+++ b/internal/socket/zsys_linux_mips64.go
@@ -51,8 +51,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_mips64le.go b/internal/socket/zsys_linux_mips64le.go
index 7f6e8a7..15e2aec 100644
--- a/internal/socket/zsys_linux_mips64le.go
+++ b/internal/socket/zsys_linux_mips64le.go
@@ -51,8 +51,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_mipsle.go b/internal/socket/zsys_linux_mipsle.go
index 1bb10a4..0c847be 100644
--- a/internal/socket/zsys_linux_mipsle.go
+++ b/internal/socket/zsys_linux_mipsle.go
@@ -48,8 +48,6 @@
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_ppc64.go b/internal/socket/zsys_linux_ppc64.go
index 7f6e8a7..15e2aec 100644
--- a/internal/socket/zsys_linux_ppc64.go
+++ b/internal/socket/zsys_linux_ppc64.go
@@ -51,8 +51,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_ppc64le.go b/internal/socket/zsys_linux_ppc64le.go
index 7f6e8a7..15e2aec 100644
--- a/internal/socket/zsys_linux_ppc64le.go
+++ b/internal/socket/zsys_linux_ppc64le.go
@@ -51,8 +51,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_riscv64.go b/internal/socket/zsys_linux_riscv64.go
index f12a1d7..8640c03 100644
--- a/internal/socket/zsys_linux_riscv64.go
+++ b/internal/socket/zsys_linux_riscv64.go
@@ -52,8 +52,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_linux_s390x.go b/internal/socket/zsys_linux_s390x.go
index 7f6e8a7..15e2aec 100644
--- a/internal/socket/zsys_linux_s390x.go
+++ b/internal/socket/zsys_linux_s390x.go
@@ -51,8 +51,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x38
 
-	sizeofCmsghdr = 0x10
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_netbsd_386.go b/internal/socket/zsys_netbsd_386.go
index 7e258ce..6b72d24 100644
--- a/internal/socket/zsys_netbsd_386.go
+++ b/internal/socket/zsys_netbsd_386.go
@@ -50,8 +50,6 @@
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_netbsd_amd64.go b/internal/socket/zsys_netbsd_amd64.go
index b3f9c0d..9aaa4ab 100644
--- a/internal/socket/zsys_netbsd_amd64.go
+++ b/internal/socket/zsys_netbsd_amd64.go
@@ -53,8 +53,6 @@
 	sizeofIovec  = 0x10
 	sizeofMsghdr = 0x30
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_netbsd_arm.go b/internal/socket/zsys_netbsd_arm.go
index 7e258ce..6b72d24 100644
--- a/internal/socket/zsys_netbsd_arm.go
+++ b/internal/socket/zsys_netbsd_arm.go
@@ -50,8 +50,6 @@
 	sizeofIovec  = 0x8
 	sizeofMsghdr = 0x1c
 
-	sizeofCmsghdr = 0xc
-
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
 )
diff --git a/internal/socket/zsys_netbsd_arm64.go b/internal/socket/zsys_netbsd_arm64.go
index da26ef0..9aaa4ab 100644
--- a/internal/socket/zsys_netbsd_arm64.go
+++ b/internal/socket/zsys_netbsd_arm64.go
@@ -50,9 +50,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_openbsd_386.go b/internal/socket/zsys_openbsd_386.go
index 73655a1..3ec8d42 100644
--- a/internal/socket/zsys_openbsd_386.go
+++ b/internal/socket/zsys_openbsd_386.go
@@ -42,9 +42,8 @@
 }
 
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_openbsd_amd64.go b/internal/socket/zsys_openbsd_amd64.go
index 0a4de80..ea0ee00 100644
--- a/internal/socket/zsys_openbsd_amd64.go
+++ b/internal/socket/zsys_openbsd_amd64.go
@@ -44,9 +44,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_openbsd_arm.go b/internal/socket/zsys_openbsd_arm.go
index 73655a1..3ec8d42 100644
--- a/internal/socket/zsys_openbsd_arm.go
+++ b/internal/socket/zsys_openbsd_arm.go
@@ -42,9 +42,8 @@
 }
 
 const (
-	sizeofIovec   = 0x8
-	sizeofMsghdr  = 0x1c
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x8
+	sizeofMsghdr = 0x1c
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_openbsd_arm64.go b/internal/socket/zsys_openbsd_arm64.go
index 0a4de80..ea0ee00 100644
--- a/internal/socket/zsys_openbsd_arm64.go
+++ b/internal/socket/zsys_openbsd_arm64.go
@@ -44,9 +44,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x1c
diff --git a/internal/socket/zsys_solaris_amd64.go b/internal/socket/zsys_solaris_amd64.go
index 353cd5f..48b2b59 100644
--- a/internal/socket/zsys_solaris_amd64.go
+++ b/internal/socket/zsys_solaris_amd64.go
@@ -43,9 +43,8 @@
 }
 
 const (
-	sizeofIovec   = 0x10
-	sizeofMsghdr  = 0x30
-	sizeofCmsghdr = 0xc
+	sizeofIovec  = 0x10
+	sizeofMsghdr = 0x30
 
 	sizeofSockaddrInet  = 0x10
 	sizeofSockaddrInet6 = 0x20