$2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ ||
$2 ~ /^IN_/ ||
$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||
- $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR|MCAST)_/ ||
+ $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||
$2 == "ICMPV6_FILTER" ||
$2 == "SOMAXCONN" ||
$2 == "NAME_MAX" ||
}
func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
- var v IPMreqn
- l := _Socklen(SizeofIPMreqn)
- err := getsockopt(fd, level, opt, unsafe.Pointer(&v), &l)
- return &v, err
+ var value IPMreqn
+ vallen := _Socklen(SizeofIPMreqn)
+ errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+ return &value, errno
}
-func GetsockoptGroupReq(fd, level, opt int) (*GroupReq, error) {
- var v GroupReq
- l := _Socklen(SizeofGroupReq)
- err := getsockopt(fd, level, opt, unsafe.Pointer(&v), &l)
- return &v, err
-}
-
-func GetsockoptGroupSourceReq(fd, level, opt int) (*GroupSourceReq, error) {
- var v GroupSourceReq
- l := _Socklen(SizeofGroupSourceReq)
- err := getsockopt(fd, level, opt, unsafe.Pointer(&v), &l)
- return &v, err
-}
-
-func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) error {
- return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreqn)
-}
-
-func SetsockoptGroupReq(fd, level, opt int, greq *GroupReq) error {
- return setsockopt(fd, level, opt, unsafe.Pointer(greq), SizeofGroupReq)
-}
-
-func SetsockoptGroupSourceReq(fd, level, opt int, gsreq *GroupSourceReq) error {
- return setsockopt(fd, level, opt, unsafe.Pointer(gsreq), SizeofGroupSourceReq)
+func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
+ return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
}
func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
type RawSockaddrAny C.struct_sockaddr_any
-type RawSockaddrStorage C.struct_sockaddr_storage
-
type _Socklen C.socklen_t
type Linger C.struct_linger
type IPv6Mreq C.struct_ipv6_mreq
-type GroupReq C.struct_group_req
-
-type GroupSourceReq C.struct_group_source_req
-
type Msghdr C.struct_msghdr
type Cmsghdr C.struct_cmsghdr
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
- SizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
SizeofLinger = C.sizeof_struct_linger
SizeofIPMreq = C.sizeof_struct_ip_mreq
SizeofIPMreqn = C.sizeof_struct_ip_mreqn
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
- SizeofGroupReq = C.sizeof_struct_group_req
- SizeofGroupSourceReq = C.sizeof_struct_group_source_req
SizeofMsghdr = C.sizeof_struct_msghdr
SizeofCmsghdr = C.sizeof_struct_cmsghdr
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
MAP_RESERVED0100 = 0x100
MAP_SHARED = 0x1
MAP_STACK = 0x400
- MCAST_BLOCK_SOURCE = 0x54
- MCAST_EXCLUDE = 0x2
- MCAST_INCLUDE = 0x1
- MCAST_JOIN_GROUP = 0x50
- MCAST_JOIN_SOURCE_GROUP = 0x52
- MCAST_LEAVE_GROUP = 0x51
- MCAST_LEAVE_SOURCE_GROUP = 0x53
- MCAST_UNBLOCK_SOURCE = 0x55
- MCAST_UNDEFINED = 0x0
MCL_CURRENT = 0x1
MCL_FUTURE = 0x2
MSG_CMSG_CLOEXEC = 0x40000
MAP_RESERVED0100 = 0x100
MAP_SHARED = 0x1
MAP_STACK = 0x400
- MCAST_BLOCK_SOURCE = 0x54
- MCAST_EXCLUDE = 0x2
- MCAST_INCLUDE = 0x1
- MCAST_JOIN_GROUP = 0x50
- MCAST_JOIN_SOURCE_GROUP = 0x52
- MCAST_LEAVE_GROUP = 0x51
- MCAST_LEAVE_SOURCE_GROUP = 0x53
- MCAST_UNBLOCK_SOURCE = 0x55
- MCAST_UNDEFINED = 0x0
MCL_CURRENT = 0x1
MCL_FUTURE = 0x2
MSG_CMSG_CLOEXEC = 0x40000
MAP_RESERVED0100 = 0x100
MAP_SHARED = 0x1
MAP_STACK = 0x400
- MCAST_BLOCK_SOURCE = 0x54
- MCAST_EXCLUDE = 0x2
- MCAST_INCLUDE = 0x1
- MCAST_JOIN_GROUP = 0x50
- MCAST_JOIN_SOURCE_GROUP = 0x52
- MCAST_LEAVE_GROUP = 0x51
- MCAST_LEAVE_SOURCE_GROUP = 0x53
- MCAST_UNBLOCK_SOURCE = 0x55
- MCAST_UNDEFINED = 0x0
MCL_CURRENT = 0x1
MCL_FUTURE = 0x2
MSG_CMSG_CLOEXEC = 0x40000
Pad [92]int8
}
-type RawSockaddrStorage struct {
- Len uint8
- Family uint8
- X__ss_pad1 [6]int8
- X__ss_align int64
- X__ss_pad2 [112]int8
-}
-
type _Socklen uint32
type Linger struct {
Interface uint32
}
-type GroupReq struct {
- Interface uint32
- Group RawSockaddrStorage
-}
-
-type GroupSourceReq struct {
- Interface uint32
- Group RawSockaddrStorage
- Source RawSockaddrStorage
-}
-
type Msghdr struct {
Name *byte
Namelen uint32
SizeofSockaddrAny = 0x6c
SizeofSockaddrUnix = 0x6a
SizeofSockaddrDatalink = 0x36
- SizeofSockaddrStorage = 0x80
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
SizeofIPv6Mreq = 0x14
- SizeofGroupReq = 0x84
- SizeofGroupSourceReq = 0x104
SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14
Pad [92]int8
}
-type RawSockaddrStorage struct {
- Len uint8
- Family uint8
- X__ss_pad1 [6]int8
- X__ss_align int64
- X__ss_pad2 [112]int8
-}
-
type _Socklen uint32
type Linger struct {
Interface uint32
}
-type GroupReq struct {
- Interface uint32
- Pad_cgo_0 [4]byte
- Group RawSockaddrStorage
-}
-
-type GroupSourceReq struct {
- Interface uint32
- Pad_cgo_0 [4]byte
- Group RawSockaddrStorage
- Source RawSockaddrStorage
-}
-
type Msghdr struct {
Name *byte
Namelen uint32
SizeofSockaddrAny = 0x6c
SizeofSockaddrUnix = 0x6a
SizeofSockaddrDatalink = 0x36
- SizeofSockaddrStorage = 0x80
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
SizeofIPv6Mreq = 0x14
- SizeofGroupReq = 0x88
- SizeofGroupSourceReq = 0x108
SizeofMsghdr = 0x30
SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14
Pad [92]int8
}
-type RawSockaddrStorage struct {
- Len uint8
- Family uint8
- X__ss_pad1 [6]int8
- X__ss_align int64
- X__ss_pad2 [112]int8
-}
-
type _Socklen uint32
type Linger struct {
Interface uint32
}
-type GroupReq struct {
- Interface uint32
- Pad_cgo_0 [4]byte
- Group RawSockaddrStorage
-}
-
-type GroupSourceReq struct {
- Interface uint32
- Pad_cgo_0 [4]byte
- Group RawSockaddrStorage
- Source RawSockaddrStorage
-}
-
type Msghdr struct {
Name *byte
Namelen uint32
SizeofSockaddrAny = 0x6c
SizeofSockaddrUnix = 0x6a
SizeofSockaddrDatalink = 0x36
- SizeofSockaddrStorage = 0x80
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
SizeofIPv6Mreq = 0x14
- SizeofGroupReq = 0x88
- SizeofGroupSourceReq = 0x108
SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14