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 <mknyszek@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
1 parent 13a7c01 commit 552d8ac

33 files changed

+489
-243
lines changed

route/address.go

Lines changed: 22 additions & 23 deletions
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

Lines changed: 6 additions & 7 deletions
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

Lines changed: 3 additions & 4 deletions
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

Lines changed: 13 additions & 2 deletions
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

Lines changed: 56 additions & 0 deletions
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

Lines changed: 12 additions & 0 deletions
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

Lines changed: 32 additions & 0 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy