Skip to content

Commit e0f0417

Browse files
committedOct 4, 2015
Merge pull request #1796 from ipfs/mocknet-fix
mocknet: conn close idempotent with process.
2 parents f70846f + a7576c9 commit e0f0417

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed
 

‎p2p/net/mock/mock_conn.go

+21
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
peer "github.com/ipfs/go-ipfs/p2p/peer"
1010

1111
ma "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
12+
process "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/goprocess"
1213
)
1314

1415
// conn represents one side's perspective of a
@@ -28,11 +29,31 @@ type conn struct {
2829
link *link
2930
rconn *conn // counterpart
3031
streams list.List
32+
proc process.Process
3133

3234
sync.RWMutex
3335
}
3436

37+
func newConn(ln, rn *peernet, l *link) *conn {
38+
c := &conn{net: ln, link: l}
39+
c.local = ln.peer
40+
c.remote = rn.peer
41+
42+
c.localAddr = ln.ps.Addrs(ln.peer)[0]
43+
c.remoteAddr = rn.ps.Addrs(rn.peer)[0]
44+
45+
c.localPrivKey = ln.ps.PrivKey(ln.peer)
46+
c.remotePubKey = rn.ps.PubKey(rn.peer)
47+
48+
c.proc = process.WithTeardown(c.teardown)
49+
return c
50+
}
51+
3552
func (c *conn) Close() error {
53+
return c.proc.Close()
54+
}
55+
56+
func (c *conn) teardown() error {
3657
for _, s := range c.allStreams() {
3758
s.Close()
3859
}

‎p2p/net/mock/mock_link.go

+2-16
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,8 @@ func (l *link) newConnPair(dialer *peernet) (*conn, *conn) {
3333
l.RLock()
3434
defer l.RUnlock()
3535

36-
mkconn := func(ln, rn *peernet) *conn {
37-
c := &conn{net: ln, link: l}
38-
c.local = ln.peer
39-
c.remote = rn.peer
40-
41-
c.localAddr = ln.ps.Addrs(ln.peer)[0]
42-
c.remoteAddr = rn.ps.Addrs(rn.peer)[0]
43-
44-
c.localPrivKey = ln.ps.PrivKey(ln.peer)
45-
c.remotePubKey = rn.ps.PubKey(rn.peer)
46-
47-
return c
48-
}
49-
50-
c1 := mkconn(l.nets[0], l.nets[1])
51-
c2 := mkconn(l.nets[1], l.nets[0])
36+
c1 := newConn(l.nets[0], l.nets[1], l)
37+
c2 := newConn(l.nets[1], l.nets[0], l)
5238
c1.rconn = c2
5339
c2.rconn = c1
5440

0 commit comments

Comments
 (0)
Please sign in to comment.