js-libp2p
js-libp2p copied to clipboard
Duplicate connections can occur when dnsaddr addresses resolve to multiple addresses
A dnsaddr multiaddr that resolves to, for example, both dns4 and dns6 addresses can result in two connections to the same peer.
For example connecting to /dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa results in connection to:
/dns4/ny5.bootstrap.libp2p.io/tcp/443/wss/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa/dns6/ny5.bootstrap.libp2p.io/tcp/443/wss/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa
libp2p should dial all addresses that the original dnsaddr resolves to, but it should only keep one connection open.
We should write a test to verify this.