|
|
@@ -199,6 +199,13 @@ func Getpeername(fd int) (sa Sockaddr, err error) {
|
|
|
return anyToSockaddr(&rsa)
|
|
|
}
|
|
|
|
|
|
+func GetsockoptByte(fd, level, opt int) (value byte, err error) {
|
|
|
+ var n byte
|
|
|
+ vallen := _Socklen(1)
|
|
|
+ err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
|
|
|
+ return n, err
|
|
|
+}
|
|
|
+
|
|
|
func GetsockoptInt(fd, level, opt int) (value int, err error) {
|
|
|
var n int32
|
|
|
vallen := _Socklen(4)
|
|
|
@@ -206,6 +213,40 @@ func GetsockoptInt(fd, level, opt int) (value int, err error) {
|
|
|
return int(n), err
|
|
|
}
|
|
|
|
|
|
+func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {
|
|
|
+ vallen := _Socklen(4)
|
|
|
+ err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)
|
|
|
+ return value, err
|
|
|
+}
|
|
|
+
|
|
|
+func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {
|
|
|
+ var value IPMreq
|
|
|
+ vallen := _Socklen(SizeofIPMreq)
|
|
|
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
|
|
+ return &value, err
|
|
|
+}
|
|
|
+
|
|
|
+func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
|
|
|
+ var value IPv6Mreq
|
|
|
+ vallen := _Socklen(SizeofIPv6Mreq)
|
|
|
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
|
|
+ return &value, err
|
|
|
+}
|
|
|
+
|
|
|
+func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
|
|
|
+ var value IPv6MTUInfo
|
|
|
+ vallen := _Socklen(SizeofIPv6MTUInfo)
|
|
|
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
|
|
+ return &value, err
|
|
|
+}
|
|
|
+
|
|
|
+func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
|
|
|
+ var value ICMPv6Filter
|
|
|
+ vallen := _Socklen(SizeofICMPv6Filter)
|
|
|
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
|
|
+ return &value, err
|
|
|
+}
|
|
|
+
|
|
|
func GetsockoptLinger(fd, level, opt int) (*Linger, error) {
|
|
|
var linger Linger
|
|
|
vallen := _Socklen(SizeofLinger)
|