diff options
author | Felix Lange <fjl@twurst.com> | 2017-03-23 01:20:33 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2017-03-23 03:49:15 +0800 |
commit | c213fd1fd8bb624241da7fc98cf25098d8b92761 (patch) | |
tree | 7b109b0962b34d90d275a1dd1f64fbdba588bf9f /rpc/websocket.go | |
parent | 525116dbff916825463931361f75e75e955c12e2 (diff) | |
download | go-tangerine-c213fd1fd8bb624241da7fc98cf25098d8b92761.tar go-tangerine-c213fd1fd8bb624241da7fc98cf25098d8b92761.tar.gz go-tangerine-c213fd1fd8bb624241da7fc98cf25098d8b92761.tar.bz2 go-tangerine-c213fd1fd8bb624241da7fc98cf25098d8b92761.tar.lz go-tangerine-c213fd1fd8bb624241da7fc98cf25098d8b92761.tar.xz go-tangerine-c213fd1fd8bb624241da7fc98cf25098d8b92761.tar.zst go-tangerine-c213fd1fd8bb624241da7fc98cf25098d8b92761.zip |
all: import "context" instead of "golang.org/x/net/context"
There is no need to depend on the old context package now that the
minimum Go version is 1.7. The move to "context" eliminates our weird
vendoring setup. Some vendored code still uses golang.org/x/net/context
and it is now vendored in the normal way.
This change triggered new vet checks around context.WithTimeout which
didn't fire with golang.org/x/net/context.
Diffstat (limited to 'rpc/websocket.go')
-rw-r--r-- | rpc/websocket.go | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/rpc/websocket.go b/rpc/websocket.go index f4271fda8..587010820 100644 --- a/rpc/websocket.go +++ b/rpc/websocket.go @@ -17,6 +17,7 @@ package rpc import ( + "context" "crypto/tls" "fmt" "net" @@ -24,10 +25,9 @@ import ( "net/url" "os" "strings" + "time" "github.com/ethereum/go-ethereum/log" - - "golang.org/x/net/context" "golang.org/x/net/websocket" "gopkg.in/fatih/set.v0" ) @@ -150,3 +150,18 @@ func wsDialAddress(location *url.URL) string { } return location.Host } + +func dialContext(ctx context.Context, network, addr string) (net.Conn, error) { + d := &net.Dialer{KeepAlive: tcpKeepAliveInterval} + return d.DialContext(ctx, network, addr) +} + +func contextDialer(ctx context.Context) *net.Dialer { + dialer := &net.Dialer{Cancel: ctx.Done(), KeepAlive: tcpKeepAliveInterval} + if deadline, ok := ctx.Deadline(); ok { + dialer.Deadline = deadline + } else { + dialer.Deadline = time.Now().Add(defaultDialTimeout) + } + return dialer +} |