Skip to content

Commit 6d306bf

Browse files
authored
identify: don't filter dns addresses based on remote addr type (#2553)
* identify: don't filter dns addresses based on remote addr type * upgrade go-multiaddr * fix test race
1 parent 2c36d31 commit 6d306bf

File tree

6 files changed

+41
-6
lines changed

6 files changed

+41
-6
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ require (
3535
github.com/minio/sha256-simd v1.0.1
3636
github.com/mr-tron/base58 v1.2.0
3737
github.com/multiformats/go-base32 v0.1.0
38-
github.com/multiformats/go-multiaddr v0.11.0
38+
github.com/multiformats/go-multiaddr v0.12.0
3939
github.com/multiformats/go-multiaddr-dns v0.3.1
4040
github.com/multiformats/go-multiaddr-fmt v0.1.0
4141
github.com/multiformats/go-multibase v0.2.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,8 +351,8 @@ github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9
351351
github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
352352
github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo=
353353
github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4=
354-
github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10=
355-
github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM=
354+
github.com/multiformats/go-multiaddr v0.12.0 h1:1QlibTFkoXJuDjjYsMHhE73TnzJQl8FSWatk/0gxGzE=
355+
github.com/multiformats/go-multiaddr v0.12.0/go.mod h1:WmZXgObOQOYp9r3cslLlppkrz1FYSHmE834dfz/lWu8=
356356
github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A=
357357
github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk=
358358
github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E=

p2p/protocol/identify/id_glass_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
recordPb "github.com/libp2p/go-libp2p/core/record/pb"
1313
blhost "github.com/libp2p/go-libp2p/p2p/host/blank"
1414
swarmt "github.com/libp2p/go-libp2p/p2p/net/swarm/testing"
15+
ma "github.com/multiformats/go-multiaddr"
1516
"google.golang.org/protobuf/proto"
1617

1718
"github.com/stretchr/testify/assert"
@@ -173,3 +174,35 @@ func TestInvalidSignedPeerRecord(t *testing.T) {
173174
require.True(t, ok)
174175
require.Nil(t, cab.GetPeerRecord(h2.ID()))
175176
}
177+
178+
func TestIncomingAddrFilter(t *testing.T) {
179+
lhAddr := ma.StringCast("/ip4/127.0.0.1/udp/123/quic-v1")
180+
privAddr := ma.StringCast("/ip4/192.168.1.101/tcp/123")
181+
pubAddr := ma.StringCast("/ip6/2::1/udp/123/quic-v1")
182+
pubDNSAddr := ma.StringCast("/dns/example.com/udp/123/quic-v1")
183+
privDNSAddr := ma.StringCast("/dns4/localhost/udp/123/quic-v1")
184+
tests := []struct {
185+
output []ma.Multiaddr
186+
remote ma.Multiaddr
187+
}{
188+
{
189+
output: []ma.Multiaddr{lhAddr, privAddr, pubAddr, pubDNSAddr, privDNSAddr},
190+
remote: lhAddr,
191+
},
192+
{
193+
output: []ma.Multiaddr{privAddr, pubAddr, pubDNSAddr, privDNSAddr},
194+
remote: privAddr,
195+
},
196+
{
197+
output: []ma.Multiaddr{pubAddr, pubDNSAddr},
198+
remote: pubAddr,
199+
},
200+
}
201+
for _, tc := range tests {
202+
t.Run(fmt.Sprintf("remote:%s", tc.remote), func(t *testing.T) {
203+
input := []ma.Multiaddr{lhAddr, privAddr, pubAddr, pubDNSAddr, privDNSAddr}
204+
got := filterAddrs(input, tc.remote)
205+
require.ElementsMatch(t, tc.output, got, "%s\n%s", tc.output, got)
206+
})
207+
}
208+
}

p2p/protocol/identify/id_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,8 +844,10 @@ func TestIncomingIDStreamsTimeout(t *testing.T) {
844844
func TestOutOfOrderConnectedNotifs(t *testing.T) {
845845
h1, err := libp2p.New(libp2p.NoListenAddrs)
846846
require.NoError(t, err)
847+
defer h1.Close()
847848
h2, err := libp2p.New(libp2p.ListenAddrs(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1")))
848849
require.NoError(t, err)
850+
defer h2.Close()
849851

850852
doneCh := make(chan struct{})
851853
errCh := make(chan error)

test-plans/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.20
55
require (
66
github.com/go-redis/redis/v8 v8.11.5
77
github.com/libp2p/go-libp2p v0.0.0
8-
github.com/multiformats/go-multiaddr v0.11.0
8+
github.com/multiformats/go-multiaddr v0.12.0
99
)
1010

1111
require (

test-plans/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@ github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9
200200
github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
201201
github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo=
202202
github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4=
203-
github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10=
204-
github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM=
203+
github.com/multiformats/go-multiaddr v0.12.0 h1:1QlibTFkoXJuDjjYsMHhE73TnzJQl8FSWatk/0gxGzE=
204+
github.com/multiformats/go-multiaddr v0.12.0/go.mod h1:WmZXgObOQOYp9r3cslLlppkrz1FYSHmE834dfz/lWu8=
205205
github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A=
206206
github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk=
207207
github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E=

0 commit comments

Comments
 (0)