From b15eb665ee3c373a361b050cd8fc726e31c4a750 Mon Sep 17 00:00:00 2001
From: Lorenzo Manacorda <lorenzo@kinvolk.io>
Date: Thu, 19 Apr 2018 15:36:33 +0200
Subject: ethclient: add DialContext and Close (#16318)

DialContext allows users to pass a Context object for cancellation.
Close closes the underlying RPC connection.
---
 ethclient/ethclient.go | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

(limited to 'ethclient/ethclient.go')

diff --git a/ethclient/ethclient.go b/ethclient/ethclient.go
index 7349d6fba..b48224587 100644
--- a/ethclient/ethclient.go
+++ b/ethclient/ethclient.go
@@ -39,7 +39,11 @@ type Client struct {
 
 // Dial connects a client to the given URL.
 func Dial(rawurl string) (*Client, error) {
-	c, err := rpc.Dial(rawurl)
+	return DialContext(context.Background(), rawurl)
+}
+
+func DialContext(ctx context.Context, rawurl string) (*Client, error) {
+	c, err := rpc.DialContext(ctx, rawurl)
 	if err != nil {
 		return nil, err
 	}
@@ -51,6 +55,10 @@ func NewClient(c *rpc.Client) *Client {
 	return &Client{c}
 }
 
+func (ec *Client) Close() {
+	ec.c.Close()
+}
+
 // Blockchain Access
 
 // BlockByHash returns the given full block.
-- 
cgit