diff options
author | Felix Lange <fjl@twurst.com> | 2015-02-17 19:37:09 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2015-02-17 19:37:09 +0800 |
commit | bb346a3ae1b6c250fdcb28b97280d3512a7fe219 (patch) | |
tree | 9fcb677ad983827e30194b644381dde229681eca | |
parent | 34d0e1b2c32d1bfe3aaa8519cf760ce499315ad5 (diff) | |
download | go-tangerine-bb346a3ae1b6c250fdcb28b97280d3512a7fe219.tar go-tangerine-bb346a3ae1b6c250fdcb28b97280d3512a7fe219.tar.gz go-tangerine-bb346a3ae1b6c250fdcb28b97280d3512a7fe219.tar.bz2 go-tangerine-bb346a3ae1b6c250fdcb28b97280d3512a7fe219.tar.lz go-tangerine-bb346a3ae1b6c250fdcb28b97280d3512a7fe219.tar.xz go-tangerine-bb346a3ae1b6c250fdcb28b97280d3512a7fe219.tar.zst go-tangerine-bb346a3ae1b6c250fdcb28b97280d3512a7fe219.zip |
rpc/ws: switch to golang.org/x/net
code.google.com/p/go.net is deprecated and will cause
problems in future versions of Go.
-rw-r--r-- | Godeps/Godeps.json | 9 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/client.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/client.go) | 18 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/exampledial_test.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/exampledial_test.go) | 2 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/examplehandler_test.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/examplehandler_test.go) | 2 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/hybi.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/hybi.go) | 0 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/hybi_test.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/hybi_test.go) | 0 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/server.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/server.go) | 0 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/websocket.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/websocket.go) | 0 | ||||
-rw-r--r-- | Godeps/_workspace/src/golang.org/x/net/websocket/websocket_test.go (renamed from Godeps/_workspace/src/code.google.com/p/go.net/websocket/websocket_test.go) | 73 | ||||
-rw-r--r-- | rpc/ws/server.go | 2 |
10 files changed, 96 insertions, 10 deletions
diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 9fa7373c8..37176ddba 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -31,11 +31,6 @@ "Rev": "69e2a90ed92d03812364aeb947b7068dc42e561e" }, { - "ImportPath": "code.google.com/p/go.net/websocket", - "Comment": "null-173", - "Rev": "4231557d7c726df4cf9a4e8cdd8a417c8c200bdb" - }, - { "ImportPath": "code.google.com/p/snappy-go/snappy", "Comment": "null-15", "Rev": "12e4b4183793ac4b061921e7980845e750679fd0" @@ -106,6 +101,10 @@ "Rev": "4ed45ec682102c643324fae5dff8dab085b6c300" }, { + "ImportPath": "golang.org/x/net/websocket", + "Rev": "59b0df9b1f7abda5aab0495ee54f408daf182ce7" + }, + { "ImportPath": "gopkg.in/check.v1", "Rev": "64131543e7896d5bcc6bd5a76287eb75ea96c673" }, diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/client.go b/Godeps/_workspace/src/golang.org/x/net/websocket/client.go index a861bb92c..ef11a51e4 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/client.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/client.go @@ -64,6 +64,20 @@ func Dial(url_, protocol, origin string) (ws *Conn, err error) { return DialConfig(config) } +var portMap = map[string]string{ + "ws": "80", + "wss": "443", +} + +func parseAuthority(location *url.URL) string { + if _, ok := portMap[location.Scheme]; ok { + if _, _, err := net.SplitHostPort(location.Host); err != nil { + return net.JoinHostPort(location.Host, portMap[location.Scheme]) + } + } + return location.Host +} + // DialConfig opens a new client connection to a WebSocket with a config. func DialConfig(config *Config) (ws *Conn, err error) { var client net.Conn @@ -75,10 +89,10 @@ func DialConfig(config *Config) (ws *Conn, err error) { } switch config.Location.Scheme { case "ws": - client, err = net.Dial("tcp", config.Location.Host) + client, err = net.Dial("tcp", parseAuthority(config.Location)) case "wss": - client, err = tls.Dial("tcp", config.Location.Host, config.TlsConfig) + client, err = tls.Dial("tcp", parseAuthority(config.Location), config.TlsConfig) default: err = ErrBadScheme diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/exampledial_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/exampledial_test.go index 777a66895..72bb9d48e 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/exampledial_test.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/exampledial_test.go @@ -8,7 +8,7 @@ import ( "fmt" "log" - "code.google.com/p/go.net/websocket" + "golang.org/x/net/websocket" ) // This example demonstrates a trivial client. diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/examplehandler_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/examplehandler_test.go index 47b0bb9b5..f22a98fcd 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/examplehandler_test.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/examplehandler_test.go @@ -8,7 +8,7 @@ import ( "io" "net/http" - "code.google.com/p/go.net/websocket" + "golang.org/x/net/websocket" ) // Echo the data received on the WebSocket. diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/hybi.go b/Godeps/_workspace/src/golang.org/x/net/websocket/hybi.go index f8c0b2e29..f8c0b2e29 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/hybi.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/hybi.go diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/hybi_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/hybi_test.go index d6a19108a..d6a19108a 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/hybi_test.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/hybi_test.go diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/server.go b/Godeps/_workspace/src/golang.org/x/net/websocket/server.go index 70322133c..70322133c 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/server.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/server.go diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/websocket.go b/Godeps/_workspace/src/golang.org/x/net/websocket/websocket.go index 0f4917bf7..0f4917bf7 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/websocket.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/websocket.go diff --git a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/websocket_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/websocket_test.go index 48f14b696..a376abacf 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.net/websocket/websocket_test.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/websocket_test.go @@ -339,3 +339,76 @@ func TestSmallBuffer(t *testing.T) { } conn.Close() } + +var parseAuthorityTests = []struct { + in *url.URL + out string +}{ + { + &url.URL{ + Scheme: "ws", + Host: "www.google.com", + }, + "www.google.com:80", + }, + { + &url.URL{ + Scheme: "wss", + Host: "www.google.com", + }, + "www.google.com:443", + }, + { + &url.URL{ + Scheme: "ws", + Host: "www.google.com:80", + }, + "www.google.com:80", + }, + { + &url.URL{ + Scheme: "wss", + Host: "www.google.com:443", + }, + "www.google.com:443", + }, + // some invalid ones for parseAuthority. parseAuthority doesn't + // concern itself with the scheme unless it actually knows about it + { + &url.URL{ + Scheme: "http", + Host: "www.google.com", + }, + "www.google.com", + }, + { + &url.URL{ + Scheme: "http", + Host: "www.google.com:80", + }, + "www.google.com:80", + }, + { + &url.URL{ + Scheme: "asdf", + Host: "127.0.0.1", + }, + "127.0.0.1", + }, + { + &url.URL{ + Scheme: "asdf", + Host: "www.google.com", + }, + "www.google.com", + }, +} + +func TestParseAuthority(t *testing.T) { + for _, tt := range parseAuthorityTests { + out := parseAuthority(tt.in) + if out != tt.out { + t.Errorf("got %v; want %v", out, tt.out) + } + } +} diff --git a/rpc/ws/server.go b/rpc/ws/server.go index 100713c10..b8cc2fa6b 100644 --- a/rpc/ws/server.go +++ b/rpc/ws/server.go @@ -21,10 +21,10 @@ import ( "net" "net/http" - "code.google.com/p/go.net/websocket" "github.com/ethereum/go-ethereum/logger" "github.com/ethereum/go-ethereum/rpc" "github.com/ethereum/go-ethereum/xeth" + "golang.org/x/net/websocket" ) var wslogger = logger.NewLogger("RPC-WS") |