aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/websocket.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2017-03-23 01:20:33 +0800
committerFelix Lange <fjl@twurst.com>2017-03-23 03:49:15 +0800
commitc213fd1fd8bb624241da7fc98cf25098d8b92761 (patch)
tree7b109b0962b34d90d275a1dd1f64fbdba588bf9f /rpc/websocket.go
parent525116dbff916825463931361f75e75e955c12e2 (diff)
downloadgo-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.go19
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
+}