Skip to content

Commit 2d29093

Browse files
Merge pull request #109 from libp2p/rcmgr
use the resource manager
2 parents 2e12799 + abde7f4 commit 2d29093

5 files changed

+21
-9
lines changed

p2p/transport/websocket/browser_integration_browser_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func TestInBrowser(t *testing.T) {
3030
if err != nil {
3131
t.Fatal(err)
3232
}
33-
tpt := New(u)
33+
tpt := New(u, nil)
3434
addr, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/5555/ws")
3535
if err != nil {
3636
t.Fatal("could not parse multiaddress:" + err.Error())

p2p/transport/websocket/browser_integration_native_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func TestInBrowser(t *testing.T) {
5656
if err != nil {
5757
t.Error("SERVER:", err)
5858
}
59-
tpt := New(u)
59+
tpt := New(u, nil)
6060
addr, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/5555/ws")
6161
if err != nil {
6262
t.Error("SERVER:", err)

p2p/transport/websocket/websocket.go

+16-4
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,18 @@ var _ transport.Transport = (*WebsocketTransport)(nil)
2929

3030
// WebsocketTransport is the actual go-libp2p transport
3131
type WebsocketTransport struct {
32-
Upgrader transport.Upgrader
32+
upgrader transport.Upgrader
33+
rcmgr network.ResourceManager
3334
}
3435

35-
func New(u transport.Upgrader) *WebsocketTransport {
36-
return &WebsocketTransport{u}
36+
func New(u transport.Upgrader, rcmgr network.ResourceManager) *WebsocketTransport {
37+
if rcmgr == nil {
38+
rcmgr = network.NullResourceManager
39+
}
40+
return &WebsocketTransport{
41+
upgrader: u,
42+
rcmgr: rcmgr,
43+
}
3744
}
3845

3946
func (t *WebsocketTransport) CanDial(a ma.Multiaddr) bool {
@@ -49,9 +56,14 @@ func (t *WebsocketTransport) Proxy() bool {
4956
}
5057

5158
func (t *WebsocketTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error) {
59+
connScope, err := t.rcmgr.OpenConnection(network.DirOutbound, true)
60+
if err != nil {
61+
return nil, err
62+
}
5263
macon, err := t.maDial(ctx, raddr)
5364
if err != nil {
65+
connScope.Done()
5466
return nil, err
5567
}
56-
return t.Upgrader.Upgrade(ctx, t, macon, network.DirOutbound, p)
68+
return t.upgrader.Upgrade(ctx, t, macon, network.DirOutbound, p, connScope)
5769
}

p2p/transport/websocket/websocket_native.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func (t *WebsocketTransport) Listen(a ma.Multiaddr) (transport.Listener, error)
7575
if err != nil {
7676
return nil, err
7777
}
78-
return t.Upgrader.UpgradeListener(t, malist), nil
78+
return t.upgrader.UpgradeListener(t, malist), nil
7979
}
8080

8181
func (t *WebsocketTransport) wrapListener(l net.Listener, origin *url.URL) (*listener, error) {

p2p/transport/websocket/websocket_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ func TestWebsocketTransport(t *testing.T) {
4747
if err != nil {
4848
t.Fatal(err)
4949
}
50-
ta := New(ua)
50+
ta := New(ua, nil)
5151
ub, err := tptu.New(newSecureMuxer(t, "peerB"), new(mplex.Transport))
5252
if err != nil {
5353
t.Fatal(err)
5454
}
55-
tb := New(ub)
55+
tb := New(ub, nil)
5656

5757
zero := "/ip4/127.0.0.1/tcp/0/ws"
5858
ttransport.SubtestTransport(t, ta, tb, zero, "peerA")

0 commit comments

Comments
 (0)