]> Cypherpunks repositories - gostls13.git/commitdiff
websocket: Fix infinite recursion in WebSockAddr String()
authorTarmigan Casebolt <tarmigan@gmail.com>
Mon, 12 Sep 2011 17:48:56 +0000 (13:48 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 12 Sep 2011 17:48:56 +0000 (13:48 -0400)
String() is already inherited from the embedded *url.URL

R=ukai, adg, rsc
CC=golang-dev
https://golang.org/cl/4992049

src/pkg/websocket/websocket.go
src/pkg/websocket/websocket_test.go

index 1d063c31fc8db87804995f4011fd072a29865e85..bd82131e56ca28a4c244fbbbf8bb60dd68e8a2ad 100644 (file)
@@ -65,9 +65,6 @@ type WebSocketAddr struct {
 // Network returns the network type for a WebSocket, "websocket".
 func (addr WebSocketAddr) Network() string { return "websocket" }
 
-// String returns the network address for a WebSocket.
-func (addr WebSocketAddr) String() string { return addr.String() }
-
 // Config is a WebSocket configuration
 type Config struct {
        // A WebSocket server address.
index 058f38ce02e5532998155ce242ab1b4172e1b941..d2834cd1fc2e3fced985fb27954db50da83db490 100644 (file)
@@ -87,6 +87,31 @@ func TestEcho(t *testing.T) {
        conn.Close()
 }
 
+func TestAddr(t *testing.T) {
+       once.Do(startServer)
+
+       // websocket.Dial()
+       client, err := net.Dial("tcp", serverAddr)
+       if err != nil {
+               t.Fatal("dialing", err)
+       }
+       conn, err := NewClient(newConfig(t, "/echo"), client)
+       if err != nil {
+               t.Errorf("WebSocket handshake error: %v", err)
+               return
+       }
+
+       ra := conn.RemoteAddr().String()
+       if !strings.HasPrefix(ra, "ws://") || !strings.HasSuffix(ra, "/echo") {
+               t.Errorf("Bad remote addr: %v", ra)
+       }
+       la := conn.LocalAddr().String()
+       if !strings.HasPrefix(la, "http://") {
+               t.Errorf("Bad local addr: %v", la)
+       }
+       conn.Close()
+}
+
 func TestCount(t *testing.T) {
        once.Do(startServer)