Skip to content

Commit 552d8ac

Browse files
mknyszekgopherbot
authored andcommitted
Revert "route: change from syscall to x/sys/unix"
This reverts CL 632816. Reason for revert: This CL causes x/net to depend on x/sys. We have a policy that prevents us from vendoring x/sys into std, but x/net needs to be vendored. Change-Id: I0fe3bc9861d559d888db6fa7febd48a201f060b8 Reviewed-on: https://go-review.googlesource.com/c/net/+/634196 Auto-Submit: Michael Knyszek <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]>
1 parent 13a7c01 commit 552d8ac

33 files changed

+489
-243
lines changed

route/address.go

+22-23
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ package route
88

99
import (
1010
"runtime"
11-
12-
"golang.org/x/sys/unix"
11+
"syscall"
1312
)
1413

1514
// An Addr represents an address associated with packet routing.
@@ -26,7 +25,7 @@ type LinkAddr struct {
2625
}
2726

2827
// Family implements the Family method of Addr interface.
29-
func (a *LinkAddr) Family() int { return unix.AF_LINK }
28+
func (a *LinkAddr) Family() int { return syscall.AF_LINK }
3029

3130
func (a *LinkAddr) lenAndSpace() (int, int) {
3231
l := 8 + len(a.Name) + len(a.Addr)
@@ -43,7 +42,7 @@ func (a *LinkAddr) marshal(b []byte) (int, error) {
4342
return 0, errInvalidAddr
4443
}
4544
b[0] = byte(l)
46-
b[1] = unix.AF_LINK
45+
b[1] = syscall.AF_LINK
4746
if a.Index > 0 {
4847
nativeEndian.PutUint16(b[2:4], uint16(a.Index))
4948
}
@@ -65,7 +64,7 @@ func parseLinkAddr(b []byte) (Addr, error) {
6564
if len(b) < 8 {
6665
return nil, errInvalidAddr
6766
}
68-
_, a, err := parseKernelLinkAddr(unix.AF_LINK, b[4:])
67+
_, a, err := parseKernelLinkAddr(syscall.AF_LINK, b[4:])
6968
if err != nil {
7069
return nil, err
7170
}
@@ -125,10 +124,10 @@ type Inet4Addr struct {
125124
}
126125

127126
// Family implements the Family method of Addr interface.
128-
func (a *Inet4Addr) Family() int { return unix.AF_INET }
127+
func (a *Inet4Addr) Family() int { return syscall.AF_INET }
129128

130129
func (a *Inet4Addr) lenAndSpace() (int, int) {
131-
return unix.SizeofSockaddrInet4, roundup(unix.SizeofSockaddrInet4)
130+
return sizeofSockaddrInet, roundup(sizeofSockaddrInet)
132131
}
133132

134133
func (a *Inet4Addr) marshal(b []byte) (int, error) {
@@ -137,7 +136,7 @@ func (a *Inet4Addr) marshal(b []byte) (int, error) {
137136
return 0, errShortBuffer
138137
}
139138
b[0] = byte(l)
140-
b[1] = unix.AF_INET
139+
b[1] = syscall.AF_INET
141140
copy(b[4:8], a.IP[:])
142141
return ll, nil
143142
}
@@ -149,10 +148,10 @@ type Inet6Addr struct {
149148
}
150149

151150
// Family implements the Family method of Addr interface.
152-
func (a *Inet6Addr) Family() int { return unix.AF_INET6 }
151+
func (a *Inet6Addr) Family() int { return syscall.AF_INET6 }
153152

154153
func (a *Inet6Addr) lenAndSpace() (int, int) {
155-
return unix.SizeofSockaddrInet6, roundup(unix.SizeofSockaddrInet6)
154+
return sizeofSockaddrInet6, roundup(sizeofSockaddrInet6)
156155
}
157156

158157
func (a *Inet6Addr) marshal(b []byte) (int, error) {
@@ -161,7 +160,7 @@ func (a *Inet6Addr) marshal(b []byte) (int, error) {
161160
return 0, errShortBuffer
162161
}
163162
b[0] = byte(l)
164-
b[1] = unix.AF_INET6
163+
b[1] = syscall.AF_INET6
165164
copy(b[8:24], a.IP[:])
166165
if a.ZoneID > 0 {
167166
nativeEndian.PutUint32(b[24:28], uint32(a.ZoneID))
@@ -176,7 +175,7 @@ func parseInetAddr(af int, b []byte) (Addr, error) {
176175
off6 = 8 // offset of in6_addr
177176
)
178177
switch af {
179-
case unix.AF_INET:
178+
case syscall.AF_INET:
180179
if len(b) < (off4+1) || len(b) < int(b[0]) || b[0] == 0 {
181180
return nil, errInvalidAddr
182181
}
@@ -188,7 +187,7 @@ func parseInetAddr(af int, b []byte) (Addr, error) {
188187
}
189188
copy(a.IP[:], b[off4:n])
190189
return a, nil
191-
case unix.AF_INET6:
190+
case syscall.AF_INET6:
192191
if len(b) < (off6+1) || len(b) < int(b[0]) || b[0] == 0 {
193192
return nil, errInvalidAddr
194193
}
@@ -198,7 +197,7 @@ func parseInetAddr(af int, b []byte) (Addr, error) {
198197
n = sockAddrLen
199198
}
200199
a := &Inet6Addr{}
201-
if sockAddrLen == unix.SizeofSockaddrInet6 {
200+
if sockAddrLen == sizeofSockaddrInet6 {
202201
a.ZoneID = int(nativeEndian.Uint32(b[24:28]))
203202
}
204203
copy(a.IP[:], b[off6:n])
@@ -261,19 +260,19 @@ func parseKernelInetAddr(af int, b []byte) (int, Addr, error) {
261260
off6 = 8 // offset of in6_addr
262261
)
263262
switch {
264-
case b[0] == unix.SizeofSockaddrInet6:
263+
case b[0] == sizeofSockaddrInet6:
265264
a := &Inet6Addr{}
266265
copy(a.IP[:], b[off6:off6+16])
267266
return int(b[0]), a, nil
268-
case af == unix.AF_INET6:
267+
case af == syscall.AF_INET6:
269268
a := &Inet6Addr{}
270269
if l-1 < off6 {
271270
copy(a.IP[:], b[1:l])
272271
} else {
273272
copy(a.IP[:], b[l-off6:l])
274273
}
275274
return int(b[0]), a, nil
276-
case b[0] == unix.SizeofSockaddrInet4:
275+
case b[0] == sizeofSockaddrInet:
277276
a := &Inet4Addr{}
278277
copy(a.IP[:], b[off4:off4+4])
279278
return int(b[0]), a, nil
@@ -385,15 +384,15 @@ func marshalAddrs(b []byte, as []Addr) (uint, error) {
385384
}
386385

387386
func parseAddrs(attrs uint, fn func(int, []byte) (int, Addr, error), b []byte) ([]Addr, error) {
388-
var as [unix.RTAX_MAX]Addr
389-
af := int(unix.AF_UNSPEC)
390-
for i := uint(0); i < unix.RTAX_MAX && len(b) >= roundup(0); i++ {
387+
var as [syscall.RTAX_MAX]Addr
388+
af := int(syscall.AF_UNSPEC)
389+
for i := uint(0); i < syscall.RTAX_MAX && len(b) >= roundup(0); i++ {
391390
if attrs&(1<<i) == 0 {
392391
continue
393392
}
394-
if i <= unix.RTAX_BRD {
393+
if i <= syscall.RTAX_BRD {
395394
switch b[1] {
396-
case unix.AF_LINK:
395+
case syscall.AF_LINK:
397396
a, err := parseLinkAddr(b)
398397
if err != nil {
399398
return nil, err
@@ -404,7 +403,7 @@ func parseAddrs(attrs uint, fn func(int, []byte) (int, Addr, error), b []byte) (
404403
return nil, errMessageTooShort
405404
}
406405
b = b[l:]
407-
case unix.AF_INET, unix.AF_INET6:
406+
case syscall.AF_INET, syscall.AF_INET6:
408407
// #70528: if the sockaddrlen is 0, no address to parse inside,
409408
// skip over the record.
410409
if b[0] > 0 {

route/address_darwin_test.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ package route
66

77
import (
88
"reflect"
9+
"syscall"
910
"testing"
10-
11-
"golang.org/x/sys/unix"
1211
)
1312

1413
type parseAddrsOnDarwinTest struct {
@@ -20,7 +19,7 @@ type parseAddrsOnDarwinTest struct {
2019

2120
var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
2221
{
23-
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK,
22+
syscall.RTA_DST | syscall.RTA_GATEWAY | syscall.RTA_NETMASK,
2423
parseKernelInetAddr,
2524
[]byte{
2625
0x10, 0x2, 0x0, 0x0, 0xc0, 0xa8, 0x56, 0x0,
@@ -44,7 +43,7 @@ var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
4443
},
4544
},
4645
{
47-
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK,
46+
syscall.RTA_DST | syscall.RTA_GATEWAY | syscall.RTA_NETMASK,
4847
parseKernelInetAddr,
4948
[]byte{
5049
0x10, 0x02, 0x00, 0x00, 0x64, 0x71, 0x00, 0x00,
@@ -70,7 +69,7 @@ var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
7069
// route -n add -inet6 fd84:1b4e:6281:: -prefixlen 48 fe80::f22f:4bff:fe09:3bff%utun4319
7170
// gw fe80:0000:0000:0000:f22f:4bff:fe09:3bff
7271
{
73-
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK,
72+
syscall.RTA_DST | syscall.RTA_GATEWAY | syscall.RTA_NETMASK,
7473
parseKernelInetAddr,
7574
[]byte{
7675
0x1c, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -99,7 +98,7 @@ var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
9998
},
10099
// golang/go#70528, the kernel can produce addresses of length 0
101100
{
102-
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK,
101+
syscall.RTA_DST | syscall.RTA_GATEWAY | syscall.RTA_NETMASK,
103102
parseKernelInetAddr,
104103
[]byte{
105104
0x00, 0x1e, 0x00, 0x00,
@@ -125,7 +124,7 @@ var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
125124
},
126125
// Additional case: golang/go/issues/70528#issuecomment-2498692877
127126
{
128-
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK,
127+
syscall.RTA_DST | syscall.RTA_GATEWAY | syscall.RTA_NETMASK,
129128
parseKernelInetAddr,
130129
[]byte{
131130
0x84, 0x00, 0x05, 0x04, 0x01, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x01, 0x15, 0x00, 0x00, 0x00,

route/address_test.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ package route
88

99
import (
1010
"reflect"
11+
"syscall"
1112
"testing"
12-
13-
"golang.org/x/sys/unix"
1413
)
1514

1615
type parseAddrsTest struct {
@@ -22,7 +21,7 @@ type parseAddrsTest struct {
2221

2322
var parseAddrsLittleEndianTests = []parseAddrsTest{
2423
{
25-
unix.RTA_DST | unix.RTA_GATEWAY | unix.RTA_NETMASK | unix.RTA_BRD,
24+
syscall.RTA_DST | syscall.RTA_GATEWAY | syscall.RTA_NETMASK | syscall.RTA_BRD,
2625
parseKernelInetAddr,
2726
[]byte{
2827
0x38, 0x12, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0,
@@ -59,7 +58,7 @@ var parseAddrsLittleEndianTests = []parseAddrsTest{
5958
},
6059
},
6160
{
62-
unix.RTA_NETMASK | unix.RTA_IFP | unix.RTA_IFA,
61+
syscall.RTA_NETMASK | syscall.RTA_IFP | syscall.RTA_IFA,
6362
parseKernelInetAddr,
6463
[]byte{
6564
0x7, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0,

route/defs_darwin.go

+13-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,19 @@ package route
1919
import "C"
2020

2121
const (
22-
sizeofIfMsghdr2Darwin15 = C.sizeof_struct_if_msghdr2
23-
sizeofIfData64Darwin15 = C.sizeof_struct_if_data64
22+
sizeofIfMsghdrDarwin15 = C.sizeof_struct_if_msghdr
23+
sizeofIfaMsghdrDarwin15 = C.sizeof_struct_ifa_msghdr
24+
sizeofIfmaMsghdrDarwin15 = C.sizeof_struct_ifma_msghdr
25+
sizeofIfMsghdr2Darwin15 = C.sizeof_struct_if_msghdr2
26+
sizeofIfmaMsghdr2Darwin15 = C.sizeof_struct_ifma_msghdr2
27+
sizeofIfDataDarwin15 = C.sizeof_struct_if_data
28+
sizeofIfData64Darwin15 = C.sizeof_struct_if_data64
2429

30+
sizeofRtMsghdrDarwin15 = C.sizeof_struct_rt_msghdr
2531
sizeofRtMsghdr2Darwin15 = C.sizeof_struct_rt_msghdr2
32+
sizeofRtMetricsDarwin15 = C.sizeof_struct_rt_metrics
33+
34+
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
35+
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
36+
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
2637
)

route/defs_dragonfly.go

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Copyright 2016 The Go Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
//go:build ignore
6+
7+
package route
8+
9+
/*
10+
#include <sys/socket.h>
11+
#include <sys/sysctl.h>
12+
13+
#include <net/if.h>
14+
#include <net/if_dl.h>
15+
#include <net/route.h>
16+
17+
#include <netinet/in.h>
18+
19+
struct ifa_msghdr_dfly4 {
20+
u_short ifam_msglen;
21+
u_char ifam_version;
22+
u_char ifam_type;
23+
int ifam_addrs;
24+
int ifam_flags;
25+
u_short ifam_index;
26+
int ifam_metric;
27+
};
28+
29+
struct ifa_msghdr_dfly58 {
30+
u_short ifam_msglen;
31+
u_char ifam_version;
32+
u_char ifam_type;
33+
u_short ifam_index;
34+
int ifam_flags;
35+
int ifam_addrs;
36+
int ifam_addrflags;
37+
int ifam_metric;
38+
};
39+
*/
40+
import "C"
41+
42+
const (
43+
sizeofIfMsghdrDragonFlyBSD4 = C.sizeof_struct_if_msghdr
44+
sizeofIfaMsghdrDragonFlyBSD4 = C.sizeof_struct_ifa_msghdr_dfly4
45+
sizeofIfmaMsghdrDragonFlyBSD4 = C.sizeof_struct_ifma_msghdr
46+
sizeofIfAnnouncemsghdrDragonFlyBSD4 = C.sizeof_struct_if_announcemsghdr
47+
48+
sizeofIfaMsghdrDragonFlyBSD58 = C.sizeof_struct_ifa_msghdr_dfly58
49+
50+
sizeofRtMsghdrDragonFlyBSD4 = C.sizeof_struct_rt_msghdr
51+
sizeofRtMetricsDragonFlyBSD4 = C.sizeof_struct_rt_metrics
52+
53+
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
54+
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
55+
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
56+
)

route/defs_freebsd.go

+12
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,12 @@ struct if_msghdr_freebsd11 {
218218
import "C"
219219

220220
const (
221+
sizeofIfMsghdrlFreeBSD10 = C.sizeof_struct_if_msghdrl
222+
sizeofIfaMsghdrFreeBSD10 = C.sizeof_struct_ifa_msghdr
223+
sizeofIfaMsghdrlFreeBSD10 = C.sizeof_struct_ifa_msghdrl
224+
sizeofIfmaMsghdrFreeBSD10 = C.sizeof_struct_ifma_msghdr
225+
sizeofIfAnnouncemsghdrFreeBSD10 = C.sizeof_struct_if_announcemsghdr
226+
221227
sizeofRtMsghdrFreeBSD10 = C.sizeof_struct_rt_msghdr
222228
sizeofRtMetricsFreeBSD10 = C.sizeof_struct_rt_metrics
223229

@@ -233,6 +239,12 @@ const (
233239
sizeofIfDataFreeBSD10 = C.sizeof_struct_if_data_freebsd10
234240
sizeofIfDataFreeBSD11 = C.sizeof_struct_if_data_freebsd11
235241

242+
sizeofIfMsghdrlFreeBSD10Emu = C.sizeof_struct_if_msghdrl
243+
sizeofIfaMsghdrFreeBSD10Emu = C.sizeof_struct_ifa_msghdr
244+
sizeofIfaMsghdrlFreeBSD10Emu = C.sizeof_struct_ifa_msghdrl
245+
sizeofIfmaMsghdrFreeBSD10Emu = C.sizeof_struct_ifma_msghdr
246+
sizeofIfAnnouncemsghdrFreeBSD10Emu = C.sizeof_struct_if_announcemsghdr
247+
236248
sizeofRtMsghdrFreeBSD10Emu = C.sizeof_struct_rt_msghdr
237249
sizeofRtMetricsFreeBSD10Emu = C.sizeof_struct_rt_metrics
238250

route/defs_netbsd.go

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2016 The Go Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
//go:build ignore
6+
7+
package route
8+
9+
/*
10+
#include <sys/socket.h>
11+
#include <sys/sysctl.h>
12+
13+
#include <net/if.h>
14+
#include <net/if_dl.h>
15+
#include <net/route.h>
16+
17+
#include <netinet/in.h>
18+
*/
19+
import "C"
20+
21+
const (
22+
sizeofIfMsghdrNetBSD7 = C.sizeof_struct_if_msghdr
23+
sizeofIfaMsghdrNetBSD7 = C.sizeof_struct_ifa_msghdr
24+
sizeofIfAnnouncemsghdrNetBSD7 = C.sizeof_struct_if_announcemsghdr
25+
26+
sizeofRtMsghdrNetBSD7 = C.sizeof_struct_rt_msghdr
27+
sizeofRtMetricsNetBSD7 = C.sizeof_struct_rt_metrics
28+
29+
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
30+
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
31+
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
32+
)

0 commit comments

Comments
 (0)