ipv4: use socket option consts from x/sys/unix on freebsd
Use the socket option constants defined in the golang.org/x/sys/unix
package instead of duplicating them in this package.
Note that for now, sysIP_RECVDSTADDR, sysIP_RECVIF and sysIP_RECVTTL
still need to be defined because they are used in code shared with other
platforms.
Change-Id: Ic937ccbc0a554c8dd6e0b9f36b1601ba86f62f5f
Reviewed-on: https://go-review.googlesource.com/c/net/+/304709
Trust: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/ipv4/defs_freebsd.go b/ipv4/defs_freebsd.go
index 357ce85..45152d4 100644
--- a/ipv4/defs_freebsd.go
+++ b/ipv4/defs_freebsd.go
@@ -17,39 +17,9 @@
import "C"
const (
- sysIP_OPTIONS = C.IP_OPTIONS
- sysIP_HDRINCL = C.IP_HDRINCL
- sysIP_TOS = C.IP_TOS
- sysIP_TTL = C.IP_TTL
- sysIP_RECVOPTS = C.IP_RECVOPTS
- sysIP_RECVRETOPTS = C.IP_RECVRETOPTS
sysIP_RECVDSTADDR = C.IP_RECVDSTADDR
- sysIP_SENDSRCADDR = C.IP_SENDSRCADDR
- sysIP_RETOPTS = C.IP_RETOPTS
sysIP_RECVIF = C.IP_RECVIF
- sysIP_ONESBCAST = C.IP_ONESBCAST
- sysIP_BINDANY = C.IP_BINDANY
sysIP_RECVTTL = C.IP_RECVTTL
- sysIP_MINTTL = C.IP_MINTTL
- sysIP_DONTFRAG = C.IP_DONTFRAG
- sysIP_RECVTOS = C.IP_RECVTOS
-
- sysIP_MULTICAST_IF = C.IP_MULTICAST_IF
- sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL
- sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP
- sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP
- sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP
- sysIP_MULTICAST_VIF = C.IP_MULTICAST_VIF
- sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP
- sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP
- sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE
- sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE
- sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP
- sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP
- sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP
- sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP
- sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE
- sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
diff --git a/ipv4/sys_freebsd.go b/ipv4/sys_freebsd.go
index 482873d..cba9063 100644
--- a/ipv4/sys_freebsd.go
+++ b/ipv4/sys_freebsd.go
@@ -13,38 +13,40 @@
"golang.org/x/net/internal/iana"
"golang.org/x/net/internal/socket"
+
+ "golang.org/x/sys/unix"
)
var (
ctlOpts = [ctlMax]ctlOpt{
- ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL},
- ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst},
- ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface},
+ ctlTTL: {unix.IP_RECVTTL, 1, marshalTTL, parseTTL},
+ ctlDst: {unix.IP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst},
+ ctlInterface: {unix.IP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface},
}
sockOpts = map[int]*sockOpt{
- ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}},
- ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}},
- ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}},
- ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}},
- ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}},
- ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}},
- ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}},
- ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}},
- ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}},
- ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
- ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
- ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
- ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
- ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
- ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_TOS, Len: 4}},
+ ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_TTL, Len: 4}},
+ ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_TTL, Len: 1}},
+ ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: 4}},
+ ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_LOOP, Len: 4}},
+ ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_RECVTTL, Len: 4}},
+ ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_RECVDSTADDR, Len: 4}},
+ ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_RECVIF, Len: 4}},
+ ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_HDRINCL, Len: 4}},
+ ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.MCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+ ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.MCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+ ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.MCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.MCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.MCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.MCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
}
)
func init() {
freebsdVersion, _ = syscall.SysctlUint32("kern.osreldate")
if freebsdVersion >= 1000000 {
- sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn}
+ sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn}
}
if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" {
archs, _ := syscall.Sysctl("kern.supported_archs")
diff --git a/ipv4/zsys_freebsd_386.go b/ipv4/zsys_freebsd_386.go
index 136e2b8..9a0e328 100644
--- a/ipv4/zsys_freebsd_386.go
+++ b/ipv4/zsys_freebsd_386.go
@@ -4,39 +4,9 @@
package ipv4
const (
- sysIP_OPTIONS = 0x1
- sysIP_HDRINCL = 0x2
- sysIP_TOS = 0x3
- sysIP_TTL = 0x4
- sysIP_RECVOPTS = 0x5
- sysIP_RECVRETOPTS = 0x6
sysIP_RECVDSTADDR = 0x7
- sysIP_SENDSRCADDR = 0x7
- sysIP_RETOPTS = 0x8
sysIP_RECVIF = 0x14
- sysIP_ONESBCAST = 0x17
- sysIP_BINDANY = 0x18
sysIP_RECVTTL = 0x41
- sysIP_MINTTL = 0x42
- sysIP_DONTFRAG = 0x43
- sysIP_RECVTOS = 0x44
-
- sysIP_MULTICAST_IF = 0x9
- sysIP_MULTICAST_TTL = 0xa
- sysIP_MULTICAST_LOOP = 0xb
- sysIP_ADD_MEMBERSHIP = 0xc
- sysIP_DROP_MEMBERSHIP = 0xd
- sysIP_MULTICAST_VIF = 0xe
- sysIP_ADD_SOURCE_MEMBERSHIP = 0x46
- sysIP_DROP_SOURCE_MEMBERSHIP = 0x47
- sysIP_BLOCK_SOURCE = 0x48
- sysIP_UNBLOCK_SOURCE = 0x49
- sysMCAST_JOIN_GROUP = 0x50
- sysMCAST_LEAVE_GROUP = 0x51
- sysMCAST_JOIN_SOURCE_GROUP = 0x52
- sysMCAST_LEAVE_SOURCE_GROUP = 0x53
- sysMCAST_BLOCK_SOURCE = 0x54
- sysMCAST_UNBLOCK_SOURCE = 0x55
sizeofSockaddrStorage = 0x80
sizeofSockaddrInet = 0x10
diff --git a/ipv4/zsys_freebsd_amd64.go b/ipv4/zsys_freebsd_amd64.go
index 4f730f1..143623b 100644
--- a/ipv4/zsys_freebsd_amd64.go
+++ b/ipv4/zsys_freebsd_amd64.go
@@ -4,39 +4,9 @@
package ipv4
const (
- sysIP_OPTIONS = 0x1
- sysIP_HDRINCL = 0x2
- sysIP_TOS = 0x3
- sysIP_TTL = 0x4
- sysIP_RECVOPTS = 0x5
- sysIP_RECVRETOPTS = 0x6
sysIP_RECVDSTADDR = 0x7
- sysIP_SENDSRCADDR = 0x7
- sysIP_RETOPTS = 0x8
sysIP_RECVIF = 0x14
- sysIP_ONESBCAST = 0x17
- sysIP_BINDANY = 0x18
sysIP_RECVTTL = 0x41
- sysIP_MINTTL = 0x42
- sysIP_DONTFRAG = 0x43
- sysIP_RECVTOS = 0x44
-
- sysIP_MULTICAST_IF = 0x9
- sysIP_MULTICAST_TTL = 0xa
- sysIP_MULTICAST_LOOP = 0xb
- sysIP_ADD_MEMBERSHIP = 0xc
- sysIP_DROP_MEMBERSHIP = 0xd
- sysIP_MULTICAST_VIF = 0xe
- sysIP_ADD_SOURCE_MEMBERSHIP = 0x46
- sysIP_DROP_SOURCE_MEMBERSHIP = 0x47
- sysIP_BLOCK_SOURCE = 0x48
- sysIP_UNBLOCK_SOURCE = 0x49
- sysMCAST_JOIN_GROUP = 0x50
- sysMCAST_LEAVE_GROUP = 0x51
- sysMCAST_JOIN_SOURCE_GROUP = 0x52
- sysMCAST_LEAVE_SOURCE_GROUP = 0x53
- sysMCAST_BLOCK_SOURCE = 0x54
- sysMCAST_UNBLOCK_SOURCE = 0x55
sizeofSockaddrStorage = 0x80
sizeofSockaddrInet = 0x10
diff --git a/ipv4/zsys_freebsd_arm.go b/ipv4/zsys_freebsd_arm.go
index 4f730f1..143623b 100644
--- a/ipv4/zsys_freebsd_arm.go
+++ b/ipv4/zsys_freebsd_arm.go
@@ -4,39 +4,9 @@
package ipv4
const (
- sysIP_OPTIONS = 0x1
- sysIP_HDRINCL = 0x2
- sysIP_TOS = 0x3
- sysIP_TTL = 0x4
- sysIP_RECVOPTS = 0x5
- sysIP_RECVRETOPTS = 0x6
sysIP_RECVDSTADDR = 0x7
- sysIP_SENDSRCADDR = 0x7
- sysIP_RETOPTS = 0x8
sysIP_RECVIF = 0x14
- sysIP_ONESBCAST = 0x17
- sysIP_BINDANY = 0x18
sysIP_RECVTTL = 0x41
- sysIP_MINTTL = 0x42
- sysIP_DONTFRAG = 0x43
- sysIP_RECVTOS = 0x44
-
- sysIP_MULTICAST_IF = 0x9
- sysIP_MULTICAST_TTL = 0xa
- sysIP_MULTICAST_LOOP = 0xb
- sysIP_ADD_MEMBERSHIP = 0xc
- sysIP_DROP_MEMBERSHIP = 0xd
- sysIP_MULTICAST_VIF = 0xe
- sysIP_ADD_SOURCE_MEMBERSHIP = 0x46
- sysIP_DROP_SOURCE_MEMBERSHIP = 0x47
- sysIP_BLOCK_SOURCE = 0x48
- sysIP_UNBLOCK_SOURCE = 0x49
- sysMCAST_JOIN_GROUP = 0x50
- sysMCAST_LEAVE_GROUP = 0x51
- sysMCAST_JOIN_SOURCE_GROUP = 0x52
- sysMCAST_LEAVE_SOURCE_GROUP = 0x53
- sysMCAST_BLOCK_SOURCE = 0x54
- sysMCAST_UNBLOCK_SOURCE = 0x55
sizeofSockaddrStorage = 0x80
sizeofSockaddrInet = 0x10
diff --git a/ipv4/zsys_freebsd_arm64.go b/ipv4/zsys_freebsd_arm64.go
index ecebf32..1be7023 100644
--- a/ipv4/zsys_freebsd_arm64.go
+++ b/ipv4/zsys_freebsd_arm64.go
@@ -4,39 +4,9 @@
package ipv4
const (
- sysIP_OPTIONS = 0x1
- sysIP_HDRINCL = 0x2
- sysIP_TOS = 0x3
- sysIP_TTL = 0x4
- sysIP_RECVOPTS = 0x5
- sysIP_RECVRETOPTS = 0x6
sysIP_RECVDSTADDR = 0x7
- sysIP_SENDSRCADDR = 0x7
- sysIP_RETOPTS = 0x8
sysIP_RECVIF = 0x14
- sysIP_ONESBCAST = 0x17
- sysIP_BINDANY = 0x18
sysIP_RECVTTL = 0x41
- sysIP_MINTTL = 0x42
- sysIP_DONTFRAG = 0x43
- sysIP_RECVTOS = 0x44
-
- sysIP_MULTICAST_IF = 0x9
- sysIP_MULTICAST_TTL = 0xa
- sysIP_MULTICAST_LOOP = 0xb
- sysIP_ADD_MEMBERSHIP = 0xc
- sysIP_DROP_MEMBERSHIP = 0xd
- sysIP_MULTICAST_VIF = 0xe
- sysIP_ADD_SOURCE_MEMBERSHIP = 0x46
- sysIP_DROP_SOURCE_MEMBERSHIP = 0x47
- sysIP_BLOCK_SOURCE = 0x48
- sysIP_UNBLOCK_SOURCE = 0x49
- sysMCAST_JOIN_GROUP = 0x50
- sysMCAST_LEAVE_GROUP = 0x51
- sysMCAST_JOIN_SOURCE_GROUP = 0x52
- sysMCAST_LEAVE_SOURCE_GROUP = 0x53
- sysMCAST_BLOCK_SOURCE = 0x54
- sysMCAST_UNBLOCK_SOURCE = 0x55
sizeofSockaddrStorage = 0x80
sizeofSockaddrInet = 0x10