Skip to content
This repository has been archived by the owner on May 26, 2022. It is now read-only.

use the resource manager #109

Merged
merged 2 commits into from
Jan 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion browser_integration_browser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func TestInBrowser(t *testing.T) {
if err != nil {
t.Fatal(err)
}
tpt := New(u)
tpt := New(u, nil)
addr, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/5555/ws")
if err != nil {
t.Fatal("could not parse multiaddress:" + err.Error())
Expand Down
2 changes: 1 addition & 1 deletion browser_integration_native_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func TestInBrowser(t *testing.T) {
if err != nil {
t.Error("SERVER:", err)
}
tpt := New(u)
tpt := New(u, nil)
addr, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/5555/ws")
if err != nil {
t.Error("SERVER:", err)
Expand Down
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ module github.com/libp2p/go-ws-transport
require (
github.com/gorilla/websocket v1.4.2
github.com/libp2p/go-conn-security-multistream v0.3.0
github.com/libp2p/go-libp2p-core v0.13.1-0.20220104083644-a3dd401efe36
github.com/libp2p/go-libp2p-mplex v0.4.1
github.com/libp2p/go-libp2p-testing v0.5.0
github.com/libp2p/go-libp2p-transport-upgrader v0.6.1-0.20220104084635-5fc0a74b41f0
github.com/libp2p/go-libp2p-core v0.14.0
github.com/libp2p/go-libp2p-mplex v0.5.0
github.com/libp2p/go-libp2p-testing v0.7.0
github.com/libp2p/go-libp2p-transport-upgrader v0.7.0
github.com/multiformats/go-multiaddr v0.4.1
github.com/multiformats/go-multiaddr-fmt v0.1.0
)
Expand Down
92 changes: 44 additions & 48 deletions go.sum

Large diffs are not rendered by default.

20 changes: 16 additions & 4 deletions websocket.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,18 @@ var _ transport.Transport = (*WebsocketTransport)(nil)

// WebsocketTransport is the actual go-libp2p transport
type WebsocketTransport struct {
Upgrader transport.Upgrader
upgrader transport.Upgrader
rcmgr network.ResourceManager
}

func New(u transport.Upgrader) *WebsocketTransport {
return &WebsocketTransport{u}
func New(u transport.Upgrader, rcmgr network.ResourceManager) *WebsocketTransport {
if rcmgr == nil {
rcmgr = network.NullResourceManager
}
return &WebsocketTransport{
upgrader: u,
rcmgr: rcmgr,
}
}

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

func (t *WebsocketTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error) {
connScope, err := t.rcmgr.OpenConnection(network.DirOutbound, true)
if err != nil {
return nil, err
}
macon, err := t.maDial(ctx, raddr)
if err != nil {
connScope.Done()
return nil, err
}
return t.Upgrader.Upgrade(ctx, t, macon, network.DirOutbound, p)
return t.upgrader.Upgrade(ctx, t, macon, network.DirOutbound, p, connScope)
}
2 changes: 1 addition & 1 deletion websocket_native.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func (t *WebsocketTransport) Listen(a ma.Multiaddr) (transport.Listener, error)
if err != nil {
return nil, err
}
return t.Upgrader.UpgradeListener(t, malist), nil
return t.upgrader.UpgradeListener(t, malist), nil
}

func (t *WebsocketTransport) wrapListener(l net.Listener, origin *url.URL) (*listener, error) {
Expand Down
4 changes: 2 additions & 2 deletions websocket_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ func TestWebsocketTransport(t *testing.T) {
if err != nil {
t.Fatal(err)
}
ta := New(ua)
ta := New(ua, nil)
ub, err := tptu.New(newSecureMuxer(t, "peerB"), new(mplex.Transport))
if err != nil {
t.Fatal(err)
}
tb := New(ub)
tb := New(ub, nil)

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