Skip to content

Commit 22b34df

Browse files
committed
autonatv2: explicitly handle dns addrs (#3249)
1 parent eb3ff9f commit 22b34df

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

p2p/protocol/autonatv2/server.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,9 @@ func amplificationAttackPrevention(observedAddr, dialAddr ma.Multiaddr) bool {
522522
if err != nil {
523523
return true
524524
}
525-
dialIP, _ := manet.ToIP(dialAddr) // must be an IP multiaddr
525+
dialIP, err := manet.ToIP(dialAddr) // can be dns addr
526+
if err != nil {
527+
return true
528+
}
526529
return !observedIP.Equal(dialIP)
527530
}

p2p/protocol/autonatv2/server_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,13 @@ func TestDefaultAmplificationAttackPrevention(t *testing.T) {
588588

589589
t2 := ma.StringCast("/ip4/1.1.1.1/tcp/1235") // different IP
590590
require.True(t, amplificationAttackPrevention(q2, t2))
591+
592+
// always ask dial data for dns addrs
593+
d1 := ma.StringCast("/dns/localhost/udp/1/quic-v1")
594+
d2 := ma.StringCast("/dnsaddr/libp2p.io/tcp/1")
595+
require.True(t, amplificationAttackPrevention(d1, t1))
596+
require.True(t, amplificationAttackPrevention(d2, t1))
597+
591598
}
592599

593600
func FuzzServerDialRequest(f *testing.F) {

0 commit comments

Comments
 (0)