Skip to content

Commit

Permalink
dont' share port with quic
Browse files Browse the repository at this point in the history
  • Loading branch information
sukunrt committed Feb 19, 2025
1 parent 9fec5bf commit 2c1efe2
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 37 deletions.
2 changes: 1 addition & 1 deletion p2p/net/swarm/swarm_dial_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -426,5 +426,5 @@ func TestSkipDialingManyDNS(t *testing.T) {

resolved := s.resolveAddrs(context.Background(), peer.AddrInfo{ID: id, Addrs: []ma.Multiaddr{addr}})
require.NoError(t, err)
require.Less(t, len(resolved), 3)
require.Less(t, len(resolved), 3, "got: %v", resolved)
}
38 changes: 2 additions & 36 deletions p2p/net/swarm/testing/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import (
libp2pwebtransport "github.com/libp2p/go-libp2p/p2p/transport/webtransport"

ma "github.com/multiformats/go-multiaddr"
manet "github.com/multiformats/go-multiaddr/net"
"github.com/quic-go/quic-go"
"github.com/stretchr/testify/require"
)
Expand Down Expand Up @@ -191,7 +190,6 @@ func GenSwarm(t testing.TB, opts ...Option) *swarm.Swarm {
}
}
}
var quicListenAddr ma.Multiaddr
var reuse *quicreuse.ConnManager
if !cfg.disableQUIC {
reuse, err = quicreuse.NewConnManager(quic.StatelessResetKey{}, quic.TokenGeneratorKey{})
Expand All @@ -209,12 +207,6 @@ func GenSwarm(t testing.TB, opts ...Option) *swarm.Swarm {
if err := s.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1")); err != nil {
t.Fatal(err)
}
for _, a := range s.ListenAddresses() {
if _, err := a.ValueForProtocol(ma.P_QUIC_V1); err == nil {
quicListenAddr = a
break
}
}
}
}
if !cfg.disableWebTransport {
Expand All @@ -232,35 +224,13 @@ func GenSwarm(t testing.TB, opts ...Option) *swarm.Swarm {
t.Fatal(err)
}
if !cfg.dialOnly {
listenAddr := ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport")
if quicListenAddr != nil {
listenAddr = quicListenAddr.Encapsulate(ma.StringCast("/webtransport"))
}
if err := s.Listen(listenAddr); err != nil {
if err := s.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport")); err != nil {
t.Fatal(err)
}
}
}

if !cfg.disableWebRTC {
listenUDPFn := func(network string, laddr *net.UDPAddr) (net.PacketConn, error) {
hasQuicAddrPortFor := func(network string, laddr *net.UDPAddr) bool {
quicAddrPorts := map[string]struct{}{}
for _, addr := range s.ListenAddresses() {
if _, err := addr.ValueForProtocol(ma.P_QUIC_V1); err == nil {
netw, addr, err := manet.DialArgs(addr)
if err != nil {
return false
}
quicAddrPorts[netw+"_"+addr] = struct{}{}
}
}
_, ok := quicAddrPorts[network+"_"+laddr.String()]
return ok
}
if hasQuicAddrPortFor(network, laddr) {
return reuse.SharedNonQUICPacketConn(network, laddr)
}
return net.ListenUDP(network, laddr)
}
wrtcTransport, err := libp2pwebrtc.New(priv, nil, cfg.connectionGater, nil, listenUDPFn)
Expand All @@ -271,11 +241,7 @@ func GenSwarm(t testing.TB, opts ...Option) *swarm.Swarm {
t.Fatal(err)
}
if !cfg.dialOnly {
listenAddr := ma.StringCast("/ip4/127.0.0.1/udp/0/webrtc-direct")
if quicListenAddr != nil {
listenAddr = quicListenAddr.Decapsulate(ma.StringCast("/quic-v1")).Encapsulate(ma.StringCast("/webrtc-direct"))
}
if err := s.Listen(listenAddr); err != nil {
if err := s.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/webrtc-direct")); err != nil {
t.Fatal(err)
}
}
Expand Down

0 comments on commit 2c1efe2

Please sign in to comment.