Skip to content

Commit cb1fcc7

Browse files
committed
ipv6: 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, sysIPV6_TCLASS, sysIPV6_PATHMTU, sysIPV6_PKTINFO, sysIPV6_HOPLIMIT and sysIPV6_NEXTHOP still need to be defined because they are used in code shared with other platforms. Change-Id: I5de2fa26dea61b0de94cbe48575c1d842c973ff5 Reviewed-on: https://go-review.googlesource.com/c/net/+/306070 Trust: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Go Bot <gobot@golang.org>
1 parent e572328 commit cb1fcc7

6 files changed

+30
-288
lines changed

ipv6/defs_freebsd.go

+1-53
Original file line numberDiff line numberDiff line change
@@ -19,63 +19,11 @@ package ipv6
1919
import "C"
2020

2121
const (
22-
sysIPV6_UNICAST_HOPS = C.IPV6_UNICAST_HOPS
23-
sysIPV6_MULTICAST_IF = C.IPV6_MULTICAST_IF
24-
sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS
25-
sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP
26-
sysIPV6_JOIN_GROUP = C.IPV6_JOIN_GROUP
27-
sysIPV6_LEAVE_GROUP = C.IPV6_LEAVE_GROUP
28-
sysIPV6_PORTRANGE = C.IPV6_PORTRANGE
29-
sysICMP6_FILTER = C.ICMP6_FILTER
30-
31-
sysIPV6_CHECKSUM = C.IPV6_CHECKSUM
32-
sysIPV6_V6ONLY = C.IPV6_V6ONLY
33-
34-
sysIPV6_IPSEC_POLICY = C.IPV6_IPSEC_POLICY
35-
36-
sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS
37-
38-
sysIPV6_RECVPKTINFO = C.IPV6_RECVPKTINFO
39-
sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT
40-
sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR
41-
sysIPV6_RECVHOPOPTS = C.IPV6_RECVHOPOPTS
42-
sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS
43-
44-
sysIPV6_USE_MIN_MTU = C.IPV6_USE_MIN_MTU
45-
sysIPV6_RECVPATHMTU = C.IPV6_RECVPATHMTU
46-
47-
sysIPV6_PATHMTU = C.IPV6_PATHMTU
48-
22+
sysIPV6_PATHMTU = C.IPV6_PATHMTU
4923
sysIPV6_PKTINFO = C.IPV6_PKTINFO
5024
sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
5125
sysIPV6_NEXTHOP = C.IPV6_NEXTHOP
52-
sysIPV6_HOPOPTS = C.IPV6_HOPOPTS
53-
sysIPV6_DSTOPTS = C.IPV6_DSTOPTS
54-
sysIPV6_RTHDR = C.IPV6_RTHDR
55-
56-
sysIPV6_RECVTCLASS = C.IPV6_RECVTCLASS
57-
58-
sysIPV6_AUTOFLOWLABEL = C.IPV6_AUTOFLOWLABEL
59-
6026
sysIPV6_TCLASS = C.IPV6_TCLASS
61-
sysIPV6_DONTFRAG = C.IPV6_DONTFRAG
62-
63-
sysIPV6_PREFER_TEMPADDR = C.IPV6_PREFER_TEMPADDR
64-
65-
sysIPV6_BINDANY = C.IPV6_BINDANY
66-
67-
sysIPV6_MSFILTER = C.IPV6_MSFILTER
68-
69-
sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP
70-
sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP
71-
sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP
72-
sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP
73-
sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE
74-
sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE
75-
76-
sysIPV6_PORTRANGE_DEFAULT = C.IPV6_PORTRANGE_DEFAULT
77-
sysIPV6_PORTRANGE_HIGH = C.IPV6_PORTRANGE_HIGH
78-
sysIPV6_PORTRANGE_LOW = C.IPV6_PORTRANGE_LOW
7927

8028
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
8129
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6

ipv6/sys_freebsd.go

+25-23
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,38 @@ import (
1313

1414
"golang.org/x/net/internal/iana"
1515
"golang.org/x/net/internal/socket"
16+
17+
"golang.org/x/sys/unix"
1618
)
1719

1820
var (
1921
ctlOpts = [ctlMax]ctlOpt{
20-
ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass},
21-
ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
22-
ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
23-
ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop},
24-
ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
22+
ctlTrafficClass: {unix.IPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass},
23+
ctlHopLimit: {unix.IPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
24+
ctlPacketInfo: {unix.IPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
25+
ctlNextHop: {unix.IPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop},
26+
ctlPathMTU: {unix.IPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
2527
}
2628

2729
sockOpts = map[int]sockOpt{
28-
ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}},
29-
ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}},
30-
ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}},
31-
ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}},
32-
ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}},
33-
ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}},
34-
ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}},
35-
ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}},
36-
ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}},
37-
ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}},
38-
ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}},
39-
ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}},
40-
ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
41-
ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
42-
ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
43-
ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
44-
ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
45-
ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
30+
ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_TCLASS, Len: 4}},
31+
ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_UNICAST_HOPS, Len: 4}},
32+
ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_IF, Len: 4}},
33+
ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_HOPS, Len: 4}},
34+
ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_LOOP, Len: 4}},
35+
ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVTCLASS, Len: 4}},
36+
ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVHOPLIMIT, Len: 4}},
37+
ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVPKTINFO, Len: 4}},
38+
ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVPATHMTU, Len: 4}},
39+
ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}},
40+
ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_CHECKSUM, Len: 4}},
41+
ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: unix.ICMP6_FILTER, Len: sizeofICMPv6Filter}},
42+
ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
43+
ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
44+
ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
45+
ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
46+
ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
47+
ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
4648
}
4749
)
4850

ipv6/zsys_freebsd_386.go

+1-53
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ipv6/zsys_freebsd_amd64.go

+1-53
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ipv6/zsys_freebsd_arm.go

+1-53
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ipv6/zsys_freebsd_arm64.go

+1-53
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)