From 24a0cbf7d04ffbad04761e5e94919405bf64eca6 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Tue, 9 May 2023 11:42:58 +0300 Subject: [PATCH] Revert "websocket: don't set a WSS multiaddr for accepted unencrypted conns (#2199)" This reverts commit eeb685f68fbeff63e6eaa748ac8aef91215f1b6e. --- p2p/transport/websocket/listener.go | 8 ++------ p2p/transport/websocket/websocket_test.go | 14 -------------- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/p2p/transport/websocket/listener.go b/p2p/transport/websocket/listener.go index ab9a73f8ab..8f2f02c31c 100644 --- a/p2p/transport/websocket/listener.go +++ b/p2p/transport/websocket/listener.go @@ -20,9 +20,6 @@ import ( type listener struct { nl net.Listener server http.Server - // The Go standard library sets the http.Server.TLSConfig no matter if this is a WS or WSS, - // so we can't rely on checking if server.TLSConfig is set. - isWss bool laddr ma.Multiaddr @@ -84,7 +81,6 @@ func newListener(a ma.Multiaddr, tlsConf *tls.Config) (*listener, error) { } ln.server = http.Server{Handler: ln} if parsed.isWSS { - ln.isWss = true ln.server.TLSConfig = tlsConf } return ln, nil @@ -92,7 +88,7 @@ func newListener(a ma.Multiaddr, tlsConf *tls.Config) (*listener, error) { func (l *listener) serve() { defer close(l.closed) - if !l.isWss { + if l.server.TLSConfig == nil { l.server.Serve(l.nl) } else { l.server.ServeTLS(l.nl, "", "") @@ -101,7 +97,7 @@ func (l *listener) serve() { func (l *listener) ServeHTTP(w http.ResponseWriter, r *http.Request) { scheme := "ws" - if l.isWss { + if l.server.TLSConfig != nil { scheme = "wss" } diff --git a/p2p/transport/websocket/websocket_test.go b/p2p/transport/websocket/websocket_test.go index 10878397cf..0c7fc5f974 100644 --- a/p2p/transport/websocket/websocket_test.go +++ b/p2p/transport/websocket/websocket_test.go @@ -308,16 +308,6 @@ func TestWebsocketTransport(t *testing.T) { ttransport.SubtestTransport(t, ta, tb, "/ip4/127.0.0.1/tcp/0/ws", "peerA") } -func isWSS(addr ma.Multiaddr) bool { - if _, err := addr.ValueForProtocol(ma.P_WSS); err == nil { - return true - } - if _, err := addr.ValueForProtocol(ma.P_WS); err == nil { - return false - } - panic("not a WebSocket address") -} - func connectAndExchangeData(t *testing.T, laddr ma.Multiaddr, secure bool) { var opts []Option var tlsConf *tls.Config @@ -349,8 +339,6 @@ func connectAndExchangeData(t *testing.T, laddr ma.Multiaddr, secure bool) { require.NoError(t, err) c, err := tpt.Dial(context.Background(), l.Multiaddr(), server) require.NoError(t, err) - require.Equal(t, secure, isWSS(c.LocalMultiaddr())) - require.Equal(t, secure, isWSS(c.RemoteMultiaddr())) str, err := c.OpenStream(context.Background()) require.NoError(t, err) defer str.Close() @@ -361,8 +349,6 @@ func connectAndExchangeData(t *testing.T, laddr ma.Multiaddr, secure bool) { c, err := l.Accept() require.NoError(t, err) defer c.Close() - require.Equal(t, secure, isWSS(c.LocalMultiaddr())) - require.Equal(t, secure, isWSS(c.RemoteMultiaddr())) str, err := c.AcceptStream() require.NoError(t, err) defer str.Close()