Skip to content

Commit 719ddab

Browse files
Merge pull request #170 from multiformats/remove-is-ipv6-link-local
remove wrong (and redundant) IsIpv6LinkLocal
2 parents 114704e + dff7fed commit 719ddab

File tree

4 files changed

+19
-32
lines changed

4 files changed

+19
-32
lines changed

net/ip.go

-12
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,6 @@ func IsIPUnspecified(m ma.Multiaddr) bool {
9595
return net.IP(c.RawValue()).IsUnspecified()
9696
}
9797

98-
// IsIpv6LinkLocal returns whether the addr uses a non-local ip link
99-
func IsIpv6LinkLocal(a ma.Multiaddr) bool {
100-
split := ma.Split(a)
101-
if len(split) < 1 {
102-
return false
103-
}
104-
if IsIP6LinkLocal(split[0]) {
105-
return false
106-
}
107-
return true
108-
}
109-
11098
// If m matches [zone,ip6,...], return [ip6,...]
11199
// else if m matches [], [zone], or [zone,...], return nil
112100
// else return m

net/net_test.go

+18-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"time"
1313

1414
ma "github.com/multiformats/go-multiaddr"
15+
"github.com/stretchr/testify/require"
1516
)
1617

1718
func newMultiaddr(t *testing.T, m string) ma.Multiaddr {
@@ -449,7 +450,7 @@ func TestIPUnspecified(t *testing.T) {
449450

450451
func TestIP6LinkLocal(t *testing.T) {
451452
for a := 0; a < 65536; a++ {
452-
isLinkLocal := (a&0xffc0 == 0xfe80 || a&0xff0f == 0xff02)
453+
isLinkLocal := a&0xffc0 == 0xfe80 || a&0xff0f == 0xff02
453454
m := newMultiaddr(t, fmt.Sprintf("/ip6/%x::1", a))
454455
if IsIP6LinkLocal(m) != isLinkLocal {
455456
t.Errorf("IsIP6LinkLocal failed (%s != %v)", m, isLinkLocal)
@@ -459,6 +460,22 @@ func TestIP6LinkLocal(t *testing.T) {
459460
if !IsIP6LinkLocal(newMultiaddr(t, "/ip6zone/hello/ip6/fe80::9999")) {
460461
t.Error("IsIP6LinkLocal failed (/ip6/fe80::9999)")
461462
}
463+
464+
bad := []ma.Multiaddr{
465+
newMultiaddr(t, "/ip6/fe80::1/tcp/1234"), // link local
466+
newMultiaddr(t, "/ip6/fe80::100/tcp/1234"), // link local
467+
}
468+
good := []ma.Multiaddr{
469+
newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234"),
470+
newMultiaddr(t, "/ip6/::1/tcp/1234"),
471+
newMultiaddr(t, "/ip4/1.2.3.4/udp/1234/utp"),
472+
}
473+
for _, addr := range bad {
474+
require.True(t, IsIP6LinkLocal(addr), "%s is a link local addr", addr)
475+
}
476+
for _, addr := range good {
477+
require.False(t, IsIP6LinkLocal(addr), "%s is not a link local addr", addr)
478+
}
462479
}
463480

464481
func TestConvertNetAddr(t *testing.T) {

net/resolve.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func interfaceAddresses() ([]ma.Multiaddr, error) {
7474

7575
var out []ma.Multiaddr
7676
for _, a := range maddrs {
77-
if !IsIpv6LinkLocal(a) {
77+
if IsIP6LinkLocal(a) {
7878
continue
7979
}
8080
out = append(out, a)

net/resolve_test.go

-18
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,3 @@ func TestResolvingAddrs(t *testing.T) {
5555
t.Fatal("should have failed")
5656
}
5757
}
58-
59-
func TestAddrOverNonLocalIP(t *testing.T) {
60-
bad := []ma.Multiaddr{
61-
newMultiaddr(t, "/ip6/fe80::1/tcp/1234"), // link local
62-
newMultiaddr(t, "/ip6/fe80::100/tcp/1234"), // link local
63-
}
64-
good := []ma.Multiaddr{
65-
newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234"),
66-
newMultiaddr(t, "/ip6/::1/tcp/1234"),
67-
newMultiaddr(t, "/ip4/1.2.3.4/udp/1234/utp"),
68-
}
69-
for _, addr := range bad {
70-
require.Falsef(t, IsIpv6LinkLocal(addr), "%s is a link local addr", addr)
71-
}
72-
for _, addr := range good {
73-
require.Truef(t, IsIpv6LinkLocal(addr), "%s is not a link local addr", addr)
74-
}
75-
}

0 commit comments

Comments
 (0)