diff --git a/p2p/transport/webrtc/datachannel.go b/p2p/transport/webrtc/datachannel.go index aef7dd4fb2..76e5e65fd6 100644 --- a/p2p/transport/webrtc/datachannel.go +++ b/p2p/transport/webrtc/datachannel.go @@ -388,7 +388,6 @@ func (d *dataChannel) readLoop() { var msg pb.Message err := d.reader.ReadMsg(&msg) if err != nil { - log.Errorf("[channel %d] could not read message: %v", *d.channel.ID(), err) return } diff --git a/p2p/transport/webrtc/udpmux/mux.go b/p2p/transport/webrtc/udpmux/mux.go index 5baa0d5b68..b09c981564 100644 --- a/p2p/transport/webrtc/udpmux/mux.go +++ b/p2p/transport/webrtc/udpmux/mux.go @@ -170,17 +170,11 @@ func (mux *udpMux) readLoop() { } } -func (mux *udpMux) hasConn(ufrag string) net.PacketConn { +func (mux *udpMux) hasConn(ufrag string, isIPv6 bool) net.PacketConn { mux.mu.Lock() defer mux.mu.Unlock() - - for _, isIPv6 := range []bool{true, false} { - key := ufragConnKey{ufrag: ufrag, isIPv6: isIPv6} - if conn, ok := mux.ufragMap[key]; ok { - return conn - } - } - return nil + key := ufragConnKey{ufrag: ufrag, isIPv6: isIPv6} + return mux.ufragMap[key] } func ufragFromStunMessage(msg *stun.Message, local_ufrag bool) (string, error) { diff --git a/p2p/transport/webrtc/udpmux/mux_test.go b/p2p/transport/webrtc/udpmux/mux_test.go index f988d81e43..fe0388ee4c 100644 --- a/p2p/transport/webrtc/udpmux/mux_test.go +++ b/p2p/transport/webrtc/udpmux/mux_test.go @@ -47,6 +47,22 @@ func (dummyPacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error) { return 0, nil } +func TestUDPMux_GetConn(t *testing.T) { + mux := NewUDPMux(dummyPacketConn{}, nil) + m := mux.(*udpMux) + require.Nil(t, m.hasConn("test", false)) + conn, err := mux.GetConn("test", false) + require.NoError(t, err) + require.NotNil(t, conn) + + require.Nil(t, m.hasConn("test", true)) + connv6, err := mux.GetConn("test", true) + require.NoError(t, err) + require.NotNil(t, connv6) + + require.NotEqual(t, conn, connv6) +} + func TestUDPMux_RemoveConnectionOnClose(t *testing.T) { mux := NewUDPMux(dummyPacketConn{}, nil) conn, err := mux.GetConn("test", false) @@ -54,10 +70,10 @@ func TestUDPMux_RemoveConnectionOnClose(t *testing.T) { require.NotNil(t, conn) m := mux.(*udpMux) - require.NotNil(t, m.hasConn("test")) + require.NotNil(t, m.hasConn("test", false)) err = conn.Close() require.NoError(t, err) - require.Nil(t, m.hasConn("test")) + require.Nil(t, m.hasConn("test", false)) }