internal/socket: use AF_* and SOCK_RAW constants from x/sys

Use the AF_UNSPEC, AF_INET, AF_INET6 and SOCK_RAW constants from
golang.org/x/sys instead of locally deriving them from the C headers (or
hard coding them in the case of Windows).

Change-Id: I37fe61d0435b6c615cd767eef38380db4b4af7b1
Reviewed-on: https://go-review.googlesource.com/c/net/+/53310
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/go.mod b/go.mod
index 78a1450..0db2ff2 100644
--- a/go.mod
+++ b/go.mod
@@ -2,5 +2,6 @@
 
 require (
 	golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
+	golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
 	golang.org/x/text v0.3.0
 )
diff --git a/internal/socket/defs_darwin.go b/internal/socket/defs_darwin.go
index 14e28c0..b780bc6 100644
--- a/internal/socket/defs_darwin.go
+++ b/internal/socket/defs_darwin.go
@@ -16,14 +16,6 @@
 */
 import "C"
 
-const (
-	sysAF_UNSPEC = C.AF_UNSPEC
-	sysAF_INET   = C.AF_INET
-	sysAF_INET6  = C.AF_INET6
-
-	sysSOCK_RAW = C.SOCK_RAW
-)
-
 type iovec C.struct_iovec
 
 type msghdr C.struct_msghdr
diff --git a/internal/socket/defs_dragonfly.go b/internal/socket/defs_dragonfly.go
index 14e28c0..b780bc6 100644
--- a/internal/socket/defs_dragonfly.go
+++ b/internal/socket/defs_dragonfly.go
@@ -16,14 +16,6 @@
 */
 import "C"
 
-const (
-	sysAF_UNSPEC = C.AF_UNSPEC
-	sysAF_INET   = C.AF_INET
-	sysAF_INET6  = C.AF_INET6
-
-	sysSOCK_RAW = C.SOCK_RAW
-)
-
 type iovec C.struct_iovec
 
 type msghdr C.struct_msghdr
diff --git a/internal/socket/defs_freebsd.go b/internal/socket/defs_freebsd.go
index 14e28c0..b780bc6 100644
--- a/internal/socket/defs_freebsd.go
+++ b/internal/socket/defs_freebsd.go
@@ -16,14 +16,6 @@
 */
 import "C"
 
-const (
-	sysAF_UNSPEC = C.AF_UNSPEC
-	sysAF_INET   = C.AF_INET
-	sysAF_INET6  = C.AF_INET6
-
-	sysSOCK_RAW = C.SOCK_RAW
-)
-
 type iovec C.struct_iovec
 
 type msghdr C.struct_msghdr
diff --git a/internal/socket/defs_linux.go b/internal/socket/defs_linux.go
index ce9ec2f..6c5c11d 100644
--- a/internal/socket/defs_linux.go
+++ b/internal/socket/defs_linux.go
@@ -18,14 +18,6 @@
 */
 import "C"
 
-const (
-	sysAF_UNSPEC = C.AF_UNSPEC
-	sysAF_INET   = C.AF_INET
-	sysAF_INET6  = C.AF_INET6
-
-	sysSOCK_RAW = C.SOCK_RAW
-)
-
 type iovec C.struct_iovec
 
 type msghdr C.struct_msghdr
diff --git a/internal/socket/defs_netbsd.go b/internal/socket/defs_netbsd.go
index 3f84335..3d3b776 100644
--- a/internal/socket/defs_netbsd.go
+++ b/internal/socket/defs_netbsd.go
@@ -16,14 +16,6 @@
 */
 import "C"
 
-const (
-	sysAF_UNSPEC = C.AF_UNSPEC
-	sysAF_INET   = C.AF_INET
-	sysAF_INET6  = C.AF_INET6
-
-	sysSOCK_RAW = C.SOCK_RAW
-)
-
 type iovec C.struct_iovec
 
 type msghdr C.struct_msghdr
diff --git a/internal/socket/defs_openbsd.go b/internal/socket/defs_openbsd.go
index 14e28c0..b780bc6 100644
--- a/internal/socket/defs_openbsd.go
+++ b/internal/socket/defs_openbsd.go
@@ -16,14 +16,6 @@
 */
 import "C"
 
-const (
-	sysAF_UNSPEC = C.AF_UNSPEC
-	sysAF_INET   = C.AF_INET
-	sysAF_INET6  = C.AF_INET6
-
-	sysSOCK_RAW = C.SOCK_RAW
-)
-
 type iovec C.struct_iovec
 
 type msghdr C.struct_msghdr
diff --git a/internal/socket/defs_solaris.go b/internal/socket/defs_solaris.go
index 14e28c0..b780bc6 100644
--- a/internal/socket/defs_solaris.go
+++ b/internal/socket/defs_solaris.go
@@ -16,14 +16,6 @@
 */
 import "C"
 
-const (
-	sysAF_UNSPEC = C.AF_UNSPEC
-	sysAF_INET   = C.AF_INET
-	sysAF_INET6  = C.AF_INET6
-
-	sysSOCK_RAW = C.SOCK_RAW
-)
-
 type iovec C.struct_iovec
 
 type msghdr C.struct_msghdr
diff --git a/internal/socket/sys_const_unix.go b/internal/socket/sys_const_unix.go
new file mode 100644
index 0000000..43797d6
--- /dev/null
+++ b/internal/socket/sys_const_unix.go
@@ -0,0 +1,17 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package socket
+
+import "golang.org/x/sys/unix"
+
+const (
+	sysAF_UNSPEC = unix.AF_UNSPEC
+	sysAF_INET   = unix.AF_INET
+	sysAF_INET6  = unix.AF_INET6
+
+	sysSOCK_RAW = unix.SOCK_RAW
+)
diff --git a/internal/socket/sys_windows.go b/internal/socket/sys_windows.go
index 924e327..d556a44 100644
--- a/internal/socket/sys_windows.go
+++ b/internal/socket/sys_windows.go
@@ -7,6 +7,8 @@
 import (
 	"syscall"
 	"unsafe"
+
+	"golang.org/x/sys/windows"
 )
 
 func probeProtocolStack() int {
@@ -15,11 +17,11 @@
 }
 
 const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x17
+	sysAF_UNSPEC = windows.AF_UNSPEC
+	sysAF_INET   = windows.AF_INET
+	sysAF_INET6  = windows.AF_INET6
 
-	sysSOCK_RAW = 0x3
+	sysSOCK_RAW = windows.SOCK_RAW
 )
 
 type sockaddrInet struct {
diff --git a/internal/socket/zsys_aix_ppc64.go b/internal/socket/zsys_aix_ppc64.go
index 3a825f4..813385a 100644
--- a/internal/socket/zsys_aix_ppc64.go
+++ b/internal/socket/zsys_aix_ppc64.go
@@ -6,14 +6,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x18
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_darwin_386.go b/internal/socket/zsys_darwin_386.go
index 26f8fef..9c96042 100644
--- a/internal/socket/zsys_darwin_386.go
+++ b/internal/socket/zsys_darwin_386.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1e
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_darwin_amd64.go b/internal/socket/zsys_darwin_amd64.go
index e2987f7..3564171 100644
--- a/internal/socket/zsys_darwin_amd64.go
+++ b/internal/socket/zsys_darwin_amd64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1e
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_darwin_arm.go b/internal/socket/zsys_darwin_arm.go
index 26f8fef..9c96042 100644
--- a/internal/socket/zsys_darwin_arm.go
+++ b/internal/socket/zsys_darwin_arm.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1e
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_darwin_arm64.go b/internal/socket/zsys_darwin_arm64.go
index e2987f7..3564171 100644
--- a/internal/socket/zsys_darwin_arm64.go
+++ b/internal/socket/zsys_darwin_arm64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1e
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_dragonfly_amd64.go b/internal/socket/zsys_dragonfly_amd64.go
index c582abd..90a57f5 100644
--- a/internal/socket/zsys_dragonfly_amd64.go
+++ b/internal/socket/zsys_dragonfly_amd64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1c
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_freebsd_386.go b/internal/socket/zsys_freebsd_386.go
index 04a2488..e5bc557 100644
--- a/internal/socket/zsys_freebsd_386.go
+++ b/internal/socket/zsys_freebsd_386.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1c
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_freebsd_amd64.go b/internal/socket/zsys_freebsd_amd64.go
index 35c7cb9..cbf85af 100644
--- a/internal/socket/zsys_freebsd_amd64.go
+++ b/internal/socket/zsys_freebsd_amd64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1c
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_freebsd_arm.go b/internal/socket/zsys_freebsd_arm.go
index 04a2488..e5bc557 100644
--- a/internal/socket/zsys_freebsd_arm.go
+++ b/internal/socket/zsys_freebsd_arm.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1c
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_linux_386.go b/internal/socket/zsys_linux_386.go
index 4302069..b7db0f0 100644
--- a/internal/socket/zsys_linux_386.go
+++ b/internal/socket/zsys_linux_386.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_linux_amd64.go b/internal/socket/zsys_linux_amd64.go
index 1502f6c..87a4e0b 100644
--- a/internal/socket/zsys_linux_amd64.go
+++ b/internal/socket/zsys_linux_amd64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_linux_arm.go b/internal/socket/zsys_linux_arm.go
index 4302069..b7db0f0 100644
--- a/internal/socket/zsys_linux_arm.go
+++ b/internal/socket/zsys_linux_arm.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_linux_arm64.go b/internal/socket/zsys_linux_arm64.go
index 1502f6c..87a4e0b 100644
--- a/internal/socket/zsys_linux_arm64.go
+++ b/internal/socket/zsys_linux_arm64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_linux_mips.go b/internal/socket/zsys_linux_mips.go
index 4302069..b7db0f0 100644
--- a/internal/socket/zsys_linux_mips.go
+++ b/internal/socket/zsys_linux_mips.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_linux_mips64.go b/internal/socket/zsys_linux_mips64.go
index 1502f6c..87a4e0b 100644
--- a/internal/socket/zsys_linux_mips64.go
+++ b/internal/socket/zsys_linux_mips64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_linux_mips64le.go b/internal/socket/zsys_linux_mips64le.go
index 1502f6c..87a4e0b 100644
--- a/internal/socket/zsys_linux_mips64le.go
+++ b/internal/socket/zsys_linux_mips64le.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_linux_mipsle.go b/internal/socket/zsys_linux_mipsle.go
index 4302069..b7db0f0 100644
--- a/internal/socket/zsys_linux_mipsle.go
+++ b/internal/socket/zsys_linux_mipsle.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_linux_ppc64.go b/internal/socket/zsys_linux_ppc64.go
index 1502f6c..87a4e0b 100644
--- a/internal/socket/zsys_linux_ppc64.go
+++ b/internal/socket/zsys_linux_ppc64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_linux_ppc64le.go b/internal/socket/zsys_linux_ppc64le.go
index 1502f6c..87a4e0b 100644
--- a/internal/socket/zsys_linux_ppc64le.go
+++ b/internal/socket/zsys_linux_ppc64le.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_linux_riscv64.go b/internal/socket/zsys_linux_riscv64.go
index 62a51f9..dbff234 100644
--- a/internal/socket/zsys_linux_riscv64.go
+++ b/internal/socket/zsys_linux_riscv64.go
@@ -5,14 +5,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_linux_s390x.go b/internal/socket/zsys_linux_s390x.go
index 1502f6c..87a4e0b 100644
--- a/internal/socket/zsys_linux_s390x.go
+++ b/internal/socket/zsys_linux_s390x.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0xa
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_netbsd_386.go b/internal/socket/zsys_netbsd_386.go
index db60491..cd32844 100644
--- a/internal/socket/zsys_netbsd_386.go
+++ b/internal/socket/zsys_netbsd_386.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x18
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_netbsd_amd64.go b/internal/socket/zsys_netbsd_amd64.go
index 2a1a799..fa88b66 100644
--- a/internal/socket/zsys_netbsd_amd64.go
+++ b/internal/socket/zsys_netbsd_amd64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x18
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_netbsd_arm.go b/internal/socket/zsys_netbsd_arm.go
index db60491..cd32844 100644
--- a/internal/socket/zsys_netbsd_arm.go
+++ b/internal/socket/zsys_netbsd_arm.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x18
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_openbsd_386.go b/internal/socket/zsys_openbsd_386.go
index 1c83636..64e2ea8 100644
--- a/internal/socket/zsys_openbsd_386.go
+++ b/internal/socket/zsys_openbsd_386.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x18
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_openbsd_amd64.go b/internal/socket/zsys_openbsd_amd64.go
index a6c0bf4..13554be 100644
--- a/internal/socket/zsys_openbsd_amd64.go
+++ b/internal/socket/zsys_openbsd_amd64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x18
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint64
diff --git a/internal/socket/zsys_openbsd_arm.go b/internal/socket/zsys_openbsd_arm.go
index 1c83636..64e2ea8 100644
--- a/internal/socket/zsys_openbsd_arm.go
+++ b/internal/socket/zsys_openbsd_arm.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x18
-
-	sysSOCK_RAW = 0x3
-)
-
 type iovec struct {
 	Base *byte
 	Len  uint32
diff --git a/internal/socket/zsys_solaris_amd64.go b/internal/socket/zsys_solaris_amd64.go
index 327c632..a27d73c 100644
--- a/internal/socket/zsys_solaris_amd64.go
+++ b/internal/socket/zsys_solaris_amd64.go
@@ -3,14 +3,6 @@
 
 package socket
 
-const (
-	sysAF_UNSPEC = 0x0
-	sysAF_INET   = 0x2
-	sysAF_INET6  = 0x1a
-
-	sysSOCK_RAW = 0x4
-)
-
 type iovec struct {
 	Base *int8
 	Len  uint64