Skip to content

Commit 57ea86d

Browse files
tklausergopherbot
authored andcommitted
icmp, internal/socket, ipv4, ipv6: use binary.NativeEndian
Instead of duplicating it as internal/socket.NativeEndian. Change-Id: I7c7d76cc561b0f3083e8f33db7b90e2f421c12d5 Reviewed-on: https://go-review.googlesource.com/c/net/+/739840 Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
1 parent bcf2273 commit 57ea86d

File tree

10 files changed

+35
-58
lines changed

10 files changed

+35
-58
lines changed

icmp/ipv4.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"net"
1010
"runtime"
1111

12-
"golang.org/x/net/internal/socket"
1312
"golang.org/x/net/ipv4"
1413
)
1514

@@ -49,12 +48,12 @@ func ParseIPv4Header(b []byte) (*ipv4.Header, error) {
4948
}
5049
switch runtime.GOOS {
5150
case "darwin", "ios":
52-
h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4]))
51+
h.TotalLen = int(binary.NativeEndian.Uint16(b[2:4]))
5352
case "freebsd":
5453
if freebsdVersion >= 1000000 {
5554
h.TotalLen = int(binary.BigEndian.Uint16(b[2:4]))
5655
} else {
57-
h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4]))
56+
h.TotalLen = int(binary.NativeEndian.Uint16(b[2:4]))
5857
}
5958
default:
6059
h.TotalLen = int(binary.BigEndian.Uint16(b[2:4]))

icmp/ipv4_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,17 @@
55
package icmp
66

77
import (
8-
"encoding/binary"
98
"net"
109
"reflect"
1110
"runtime"
1211
"testing"
1312

14-
"golang.org/x/net/internal/socket"
1513
"golang.org/x/net/ipv4"
14+
"golang.org/x/sys/cpu"
1615
)
1716

1817
func TestParseIPv4Header(t *testing.T) {
19-
switch socket.NativeEndian {
20-
case binary.LittleEndian:
18+
if !cpu.IsBigEndian {
2119
t.Run("LittleEndian", func(t *testing.T) {
2220
// TODO(mikio): Add platform dependent wire
2321
// header formats when we support new

internal/socket/msghdr_solaris_64bit.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66

77
package socket
88

9-
import "unsafe"
9+
import (
10+
"encoding/binary"
11+
"unsafe"
12+
)
1013

1114
func (h *msghdr) pack(vs []iovec, bs [][]byte, oob []byte, sa []byte) {
1215
for i := range vs {
@@ -31,5 +34,5 @@ func (h *msghdr) controllen() int {
3134
}
3235

3336
func (h *msghdr) flags() int {
34-
return int(NativeEndian.Uint32(h.Pad_cgo_2[:]))
37+
return int(binary.NativeEndian.Uint32(h.Pad_cgo_2[:]))
3538
}

internal/socket/socket.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package socket // import "golang.org/x/net/internal/socket"
88

99
import (
10+
"encoding/binary"
1011
"errors"
1112
"net"
1213
"runtime"
@@ -58,7 +59,7 @@ func (o *Option) GetInt(c *Conn) (int, error) {
5859
if o.Len == 1 {
5960
return int(b[0]), nil
6061
}
61-
return int(NativeEndian.Uint32(b[:4])), nil
62+
return int(binary.NativeEndian.Uint32(b[:4])), nil
6263
}
6364

6465
// Set writes the option and value to the kernel.
@@ -84,7 +85,7 @@ func (o *Option) SetInt(c *Conn, v int) error {
8485
b = []byte{byte(v)}
8586
} else {
8687
var bb [4]byte
87-
NativeEndian.PutUint32(bb[:o.Len], uint32(v))
88+
binary.NativeEndian.PutUint32(bb[:o.Len], uint32(v))
8889
b = bb[:4]
8990
}
9091
return o.set(c, b)

internal/socket/sys.go

Lines changed: 0 additions & 23 deletions
This file was deleted.

internal/socket/sys_posix.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func marshalSockaddr(ip net.IP, port int, zone string, b []byte) int {
3636
if ip4 := ip.To4(); ip4 != nil {
3737
switch runtime.GOOS {
3838
case "android", "illumos", "linux", "solaris", "windows":
39-
NativeEndian.PutUint16(b[:2], uint16(sysAF_INET))
39+
binary.NativeEndian.PutUint16(b[:2], uint16(sysAF_INET))
4040
default:
4141
b[0] = sizeofSockaddrInet4
4242
b[1] = sysAF_INET
@@ -48,15 +48,15 @@ func marshalSockaddr(ip net.IP, port int, zone string, b []byte) int {
4848
if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil {
4949
switch runtime.GOOS {
5050
case "android", "illumos", "linux", "solaris", "windows":
51-
NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6))
51+
binary.NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6))
5252
default:
5353
b[0] = sizeofSockaddrInet6
5454
b[1] = sysAF_INET6
5555
}
5656
binary.BigEndian.PutUint16(b[2:4], uint16(port))
5757
copy(b[8:24], ip6)
5858
if zone != "" {
59-
NativeEndian.PutUint32(b[24:28], uint32(zoneCache.index(zone)))
59+
binary.NativeEndian.PutUint32(b[24:28], uint32(zoneCache.index(zone)))
6060
}
6161
return sizeofSockaddrInet6
6262
}
@@ -70,7 +70,7 @@ func parseInetAddr(b []byte, network string) (net.Addr, error) {
7070
var af int
7171
switch runtime.GOOS {
7272
case "android", "illumos", "linux", "solaris", "windows":
73-
af = int(NativeEndian.Uint16(b[:2]))
73+
af = int(binary.NativeEndian.Uint16(b[:2]))
7474
default:
7575
af = int(b[1])
7676
}
@@ -89,7 +89,7 @@ func parseInetAddr(b []byte, network string) (net.Addr, error) {
8989
}
9090
ip = make(net.IP, net.IPv6len)
9191
copy(ip, b[8:24])
92-
if id := int(NativeEndian.Uint32(b[24:28])); id > 0 {
92+
if id := int(binary.NativeEndian.Uint32(b[24:28])); id > 0 {
9393
zone = zoneCache.name(id)
9494
}
9595
}

ipv4/header.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import (
99
"fmt"
1010
"net"
1111
"runtime"
12-
13-
"golang.org/x/net/internal/socket"
1412
)
1513

1614
const (
@@ -68,12 +66,12 @@ func (h *Header) Marshal() ([]byte, error) {
6866
flagsAndFragOff := (h.FragOff & 0x1fff) | int(h.Flags<<13)
6967
switch runtime.GOOS {
7068
case "darwin", "ios", "dragonfly", "netbsd":
71-
socket.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen))
72-
socket.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
69+
binary.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen))
70+
binary.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
7371
case "freebsd":
7472
if freebsdVersion < 1100000 {
75-
socket.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen))
76-
socket.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
73+
binary.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen))
74+
binary.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
7775
} else {
7876
binary.BigEndian.PutUint16(b[2:4], uint16(h.TotalLen))
7977
binary.BigEndian.PutUint16(b[6:8], uint16(flagsAndFragOff))
@@ -127,15 +125,15 @@ func (h *Header) Parse(b []byte) error {
127125
h.Dst = net.IPv4(b[16], b[17], b[18], b[19])
128126
switch runtime.GOOS {
129127
case "darwin", "ios", "dragonfly", "netbsd":
130-
h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4])) + hdrlen
131-
h.FragOff = int(socket.NativeEndian.Uint16(b[6:8]))
128+
h.TotalLen = int(binary.NativeEndian.Uint16(b[2:4])) + hdrlen
129+
h.FragOff = int(binary.NativeEndian.Uint16(b[6:8]))
132130
case "freebsd":
133131
if freebsdVersion < 1100000 {
134-
h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4]))
132+
h.TotalLen = int(binary.NativeEndian.Uint16(b[2:4]))
135133
if freebsdVersion < 1000000 {
136134
h.TotalLen += hdrlen
137135
}
138-
h.FragOff = int(socket.NativeEndian.Uint16(b[6:8]))
136+
h.FragOff = int(binary.NativeEndian.Uint16(b[6:8]))
139137
} else {
140138
h.TotalLen = int(binary.BigEndian.Uint16(b[2:4]))
141139
h.FragOff = int(binary.BigEndian.Uint16(b[6:8]))

ipv4/header_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@ package ipv4
66

77
import (
88
"bytes"
9-
"encoding/binary"
109
"net"
1110
"reflect"
1211
"runtime"
1312
"strings"
1413
"testing"
1514

16-
"golang.org/x/net/internal/socket"
15+
"golang.org/x/sys/cpu"
1716
)
1817

1918
type headerTest struct {
@@ -169,7 +168,7 @@ func TestMarshalHeader(t *testing.T) {
169168
}
170169
}
171170

172-
if socket.NativeEndian != binary.LittleEndian {
171+
if cpu.IsBigEndian {
173172
t.Skip("no test for non-little endian machine yet")
174173
}
175174
for _, tt := range headerLittleEndianTests {
@@ -221,7 +220,7 @@ func TestParseHeader(t *testing.T) {
221220
}
222221
}
223222

224-
if socket.NativeEndian != binary.LittleEndian {
223+
if cpu.IsBigEndian {
225224
t.Skip("no test for big endian machine yet")
226225
}
227226
for _, tt := range headerLittleEndianTests {

ipv6/control_rfc2292_unix.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package ipv6
88

99
import (
10+
"encoding/binary"
1011
"unsafe"
1112

1213
"golang.org/x/net/internal/iana"
@@ -19,7 +20,7 @@ func marshal2292HopLimit(b []byte, cm *ControlMessage) []byte {
1920
m := socket.ControlMessage(b)
2021
m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_2292HOPLIMIT, 4)
2122
if cm != nil {
22-
socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.HopLimit))
23+
binary.NativeEndian.PutUint32(m.Data(4), uint32(cm.HopLimit))
2324
}
2425
return m.Next(4)
2526
}

ipv6/control_rfc3542_unix.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package ipv6
88

99
import (
10+
"encoding/binary"
1011
"net"
1112
"unsafe"
1213

@@ -20,26 +21,26 @@ func marshalTrafficClass(b []byte, cm *ControlMessage) []byte {
2021
m := socket.ControlMessage(b)
2122
m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_TCLASS, 4)
2223
if cm != nil {
23-
socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.TrafficClass))
24+
binary.NativeEndian.PutUint32(m.Data(4), uint32(cm.TrafficClass))
2425
}
2526
return m.Next(4)
2627
}
2728

2829
func parseTrafficClass(cm *ControlMessage, b []byte) {
29-
cm.TrafficClass = int(socket.NativeEndian.Uint32(b[:4]))
30+
cm.TrafficClass = int(binary.NativeEndian.Uint32(b[:4]))
3031
}
3132

3233
func marshalHopLimit(b []byte, cm *ControlMessage) []byte {
3334
m := socket.ControlMessage(b)
3435
m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_HOPLIMIT, 4)
3536
if cm != nil {
36-
socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.HopLimit))
37+
binary.NativeEndian.PutUint32(m.Data(4), uint32(cm.HopLimit))
3738
}
3839
return m.Next(4)
3940
}
4041

4142
func parseHopLimit(cm *ControlMessage, b []byte) {
42-
cm.HopLimit = int(socket.NativeEndian.Uint32(b[:4]))
43+
cm.HopLimit = int(binary.NativeEndian.Uint32(b[:4]))
4344
}
4445

4546
func marshalPacketInfo(b []byte, cm *ControlMessage) []byte {

0 commit comments

Comments
 (0)