fix(net) use Do to respect the caller's context
Brian Tiger Chow committed
Nov 5, 2014 at 06:48 UTC
68618f3fb8e7be9b2866575222944f09e36a64ee
1 file changed
+7
-2
net/net.go
+7
-2
@@ -5,6 +5,7 @@ import (
5
mux "github.com/jbenet/go-ipfs/net/mux"
6
swarm "github.com/jbenet/go-ipfs/net/swarm"
7
peer "github.com/jbenet/go-ipfs/peer"
8
+ util "github.com/jbenet/go-ipfs/util"
9
ctxc "github.com/jbenet/go-ipfs/util/ctxcloser"
10
11
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
@@ -56,9 +57,13 @@ func NewIpfsNetwork(ctx context.Context, listen []ma.Multiaddr, local peer.Peer,
57
// Listen handles incoming connections on given Multiaddr.
58
// func (n *IpfsNetwork) Listen(*ma.Muliaddr) error {}
59
59
-// DialPeer attempts to establish a connection to a given peer
60
+// DialPeer attempts to establish a connection to a given peer.
61
+// Respects the context.
62
func (n *IpfsNetwork) DialPeer(ctx context.Context, p peer.Peer) error {
61
- _, err := n.swarm.Dial(p)
63
+ err := util.Do(ctx, func() error {
64
+ _, err := n.swarm.Dial(p)
65
+ return err
66
+ })
67
return err
68
}
69