x/net/ipv4: fix freebsd/{386,arm}, linux/{386,arm} build
LGTM=iant
R=iant
CC=golang-codereviews
https://golang.org/cl/172360043
diff --git a/ipv4/defs_linux.go b/ipv4/defs_linux.go
index 2e473ab..2d36d6c 100644
--- a/ipv4/defs_linux.go
+++ b/ipv4/defs_linux.go
@@ -57,12 +57,12 @@
sysMCAST_MSFILTER = C.MCAST_MSFILTER
sysIP_MULTICAST_ALL = C.IP_MULTICAST_ALL
- sysIP_PMTUDISC_DONT = C.IP_PMTUDISC_DONT
- sysIP_PMTUDISC_WANT = C.IP_PMTUDISC_WANT
- sysIP_PMTUDISC_DO = C.IP_PMTUDISC_DO
- sysIP_PMTUDISC_PROBE = C.IP_PMTUDISC_PROBE
- sysIP_PMTUDISC_INTERFACE = C.IP_PMTUDISC_INTERFACE
- sysIP_PMTUDISC_OMIT = C.IP_PMTUDISC_OMIT
+ //sysIP_PMTUDISC_DONT = C.IP_PMTUDISC_DONT
+ //sysIP_PMTUDISC_WANT = C.IP_PMTUDISC_WANT
+ //sysIP_PMTUDISC_DO = C.IP_PMTUDISC_DO
+ //sysIP_PMTUDISC_PROBE = C.IP_PMTUDISC_PROBE
+ //sysIP_PMTUDISC_INTERFACE = C.IP_PMTUDISC_INTERFACE
+ //sysIP_PMTUDISC_OMIT = C.IP_PMTUDISC_OMIT
sysSO_EE_ORIGIN_NONE = C.SO_EE_ORIGIN_NONE
sysSO_EE_ORIGIN_LOCAL = C.SO_EE_ORIGIN_LOCAL
diff --git a/ipv4/gen.go b/ipv4/gen.go
index a1d65ef..09dcd03 100644
--- a/ipv4/gen.go
+++ b/ipv4/gen.go
@@ -63,7 +63,12 @@
if err != nil {
return err
}
- if err := ioutil.WriteFile("zsys_"+runtime.GOOS+".go", b, 0644); err != nil {
+ zsys := "zsys_" + runtime.GOOS + ".go"
+ switch runtime.GOOS {
+ case "freebsd", "linux":
+ zsys = "zsys_" + runtime.GOOS + "_" + runtime.GOARCH + ".go"
+ }
+ if err := ioutil.WriteFile(zsys, b, 0644); err != nil {
return err
}
return nil
diff --git a/ipv4/zsys_freebsd_386.go b/ipv4/zsys_freebsd_386.go
new file mode 100644
index 0000000..6fd67e1
--- /dev/null
+++ b/ipv4/zsys_freebsd_386.go
@@ -0,0 +1,93 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_freebsd.go
+
+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
+
+ sysSizeofSockaddrStorage = 0x80
+ sysSizeofSockaddrInet = 0x10
+
+ sysSizeofIPMreq = 0x8
+ sysSizeofIPMreqn = 0xc
+ sysSizeofIPMreqSource = 0xc
+ sysSizeofGroupReq = 0x84
+ sysSizeofGroupSourceReq = 0x104
+)
+
+type sysSockaddrStorage struct {
+ Len uint8
+ Family uint8
+ X__ss_pad1 [6]int8
+ X__ss_align int64
+ X__ss_pad2 [112]int8
+}
+
+type sysSockaddrInet struct {
+ Len uint8
+ Family uint8
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]int8
+}
+
+type sysIPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type sysIPMreqn struct {
+ Multiaddr [4]byte /* in_addr */
+ Address [4]byte /* in_addr */
+ Ifindex int32
+}
+
+type sysIPMreqSource struct {
+ Multiaddr [4]byte /* in_addr */
+ Sourceaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type sysGroupReq struct {
+ Interface uint32
+ Group sysSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+ Interface uint32
+ Group sysSockaddrStorage
+ Source sysSockaddrStorage
+}
diff --git a/ipv4/zsys_freebsd.go b/ipv4/zsys_freebsd_amd64.go
similarity index 100%
rename from ipv4/zsys_freebsd.go
rename to ipv4/zsys_freebsd_amd64.go
diff --git a/ipv4/zsys_freebsd_arm.go b/ipv4/zsys_freebsd_arm.go
new file mode 100644
index 0000000..6fd67e1
--- /dev/null
+++ b/ipv4/zsys_freebsd_arm.go
@@ -0,0 +1,93 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_freebsd.go
+
+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
+
+ sysSizeofSockaddrStorage = 0x80
+ sysSizeofSockaddrInet = 0x10
+
+ sysSizeofIPMreq = 0x8
+ sysSizeofIPMreqn = 0xc
+ sysSizeofIPMreqSource = 0xc
+ sysSizeofGroupReq = 0x84
+ sysSizeofGroupSourceReq = 0x104
+)
+
+type sysSockaddrStorage struct {
+ Len uint8
+ Family uint8
+ X__ss_pad1 [6]int8
+ X__ss_align int64
+ X__ss_pad2 [112]int8
+}
+
+type sysSockaddrInet struct {
+ Len uint8
+ Family uint8
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]int8
+}
+
+type sysIPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type sysIPMreqn struct {
+ Multiaddr [4]byte /* in_addr */
+ Address [4]byte /* in_addr */
+ Ifindex int32
+}
+
+type sysIPMreqSource struct {
+ Multiaddr [4]byte /* in_addr */
+ Sourceaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type sysGroupReq struct {
+ Interface uint32
+ Group sysSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+ Interface uint32
+ Group sysSockaddrStorage
+ Source sysSockaddrStorage
+}
diff --git a/ipv4/zsys_linux.go b/ipv4/zsys_linux_386.go
similarity index 90%
copy from ipv4/zsys_linux.go
copy to ipv4/zsys_linux_386.go
index b938ef9..070e3a6 100644
--- a/ipv4/zsys_linux.go
+++ b/ipv4/zsys_linux_386.go
@@ -46,13 +46,6 @@
sysMCAST_MSFILTER = 0x30
sysIP_MULTICAST_ALL = 0x31
- sysIP_PMTUDISC_DONT = 0x0
- sysIP_PMTUDISC_WANT = 0x1
- sysIP_PMTUDISC_DO = 0x2
- sysIP_PMTUDISC_PROBE = 0x3
- sysIP_PMTUDISC_INTERFACE = 0x4
- sysIP_PMTUDISC_OMIT = 0x5
-
sysSO_EE_ORIGIN_NONE = 0x0
sysSO_EE_ORIGIN_LOCAL = 0x1
sysSO_EE_ORIGIN_ICMP = 0x2
@@ -68,8 +61,8 @@
sysSizeofIPMreq = 0x8
sysSizeofIPMreqn = 0xc
sysSizeofIPMreqSource = 0xc
- sysSizeofGroupReq = 0x88
- sysSizeofGroupSourceReq = 0x108
+ sysSizeofGroupReq = 0x84
+ sysSizeofGroupSourceReq = 0x104
)
type sysKernelSockaddrStorage struct {
@@ -119,13 +112,11 @@
type sysGroupReq struct {
Interface uint32
- Pad_cgo_0 [4]byte
Group sysKernelSockaddrStorage
}
type sysGroupSourceReq struct {
Interface uint32
- Pad_cgo_0 [4]byte
Group sysKernelSockaddrStorage
Source sysKernelSockaddrStorage
}
diff --git a/ipv4/zsys_linux.go b/ipv4/zsys_linux_amd64.go
similarity index 93%
rename from ipv4/zsys_linux.go
rename to ipv4/zsys_linux_amd64.go
index b938ef9..122a96d 100644
--- a/ipv4/zsys_linux.go
+++ b/ipv4/zsys_linux_amd64.go
@@ -46,13 +46,6 @@
sysMCAST_MSFILTER = 0x30
sysIP_MULTICAST_ALL = 0x31
- sysIP_PMTUDISC_DONT = 0x0
- sysIP_PMTUDISC_WANT = 0x1
- sysIP_PMTUDISC_DO = 0x2
- sysIP_PMTUDISC_PROBE = 0x3
- sysIP_PMTUDISC_INTERFACE = 0x4
- sysIP_PMTUDISC_OMIT = 0x5
-
sysSO_EE_ORIGIN_NONE = 0x0
sysSO_EE_ORIGIN_LOCAL = 0x1
sysSO_EE_ORIGIN_ICMP = 0x2
diff --git a/ipv4/zsys_linux.go b/ipv4/zsys_linux_arm.go
similarity index 90%
copy from ipv4/zsys_linux.go
copy to ipv4/zsys_linux_arm.go
index b938ef9..070e3a6 100644
--- a/ipv4/zsys_linux.go
+++ b/ipv4/zsys_linux_arm.go
@@ -46,13 +46,6 @@
sysMCAST_MSFILTER = 0x30
sysIP_MULTICAST_ALL = 0x31
- sysIP_PMTUDISC_DONT = 0x0
- sysIP_PMTUDISC_WANT = 0x1
- sysIP_PMTUDISC_DO = 0x2
- sysIP_PMTUDISC_PROBE = 0x3
- sysIP_PMTUDISC_INTERFACE = 0x4
- sysIP_PMTUDISC_OMIT = 0x5
-
sysSO_EE_ORIGIN_NONE = 0x0
sysSO_EE_ORIGIN_LOCAL = 0x1
sysSO_EE_ORIGIN_ICMP = 0x2
@@ -68,8 +61,8 @@
sysSizeofIPMreq = 0x8
sysSizeofIPMreqn = 0xc
sysSizeofIPMreqSource = 0xc
- sysSizeofGroupReq = 0x88
- sysSizeofGroupSourceReq = 0x108
+ sysSizeofGroupReq = 0x84
+ sysSizeofGroupSourceReq = 0x104
)
type sysKernelSockaddrStorage struct {
@@ -119,13 +112,11 @@
type sysGroupReq struct {
Interface uint32
- Pad_cgo_0 [4]byte
Group sysKernelSockaddrStorage
}
type sysGroupSourceReq struct {
Interface uint32
- Pad_cgo_0 [4]byte
Group sysKernelSockaddrStorage
Source sysKernelSockaddrStorage
}