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

Commit 45adbbd

Browse files
use the ResourceManager
1 parent 1c17791 commit 45adbbd

File tree

3 files changed

+29
-7
lines changed

3 files changed

+29
-7
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ go 1.16
55
require (
66
github.com/ipfs/go-log/v2 v2.3.0
77
github.com/libp2p/go-conn-security-multistream v0.3.0
8-
github.com/libp2p/go-libp2p-core v0.10.0
8+
github.com/libp2p/go-libp2p-core v0.13.1-0.20211222091732-aeb9233f0e8b
99
github.com/libp2p/go-libp2p-mplex v0.4.1
1010
github.com/libp2p/go-libp2p-testing v0.5.0
11-
github.com/libp2p/go-libp2p-transport-upgrader v0.5.0
11+
github.com/libp2p/go-libp2p-transport-upgrader v0.6.1-0.20211222110956-14ae14228133
1212
github.com/libp2p/go-netroute v0.1.5 // indirect
1313
github.com/libp2p/go-reuseport v0.1.0
1414
github.com/libp2p/go-reuseport-transport v0.1.0

go.sum

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,9 @@ github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS
204204
github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw=
205205
github.com/libp2p/go-libp2p-core v0.5.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0=
206206
github.com/libp2p/go-libp2p-core v0.8.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8=
207-
github.com/libp2p/go-libp2p-core v0.10.0 h1:jFy7v5Muq58GTeYkPhGzIH8Qq4BFfziqc0ixPd/pP9k=
208207
github.com/libp2p/go-libp2p-core v0.10.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg=
208+
github.com/libp2p/go-libp2p-core v0.13.1-0.20211222091732-aeb9233f0e8b h1:9MisJJGOKshOjznYauNzIW7ih8/mez4NzT1XerqmFrI=
209+
github.com/libp2p/go-libp2p-core v0.13.1-0.20211222091732-aeb9233f0e8b/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg=
209210
github.com/libp2p/go-libp2p-mplex v0.4.1 h1:/pyhkP1nLwjG3OM+VuaNJkQT/Pqq73WzB3aDN3Fx1sc=
210211
github.com/libp2p/go-libp2p-mplex v0.4.1/go.mod h1:cmy+3GfqfM1PceHTLL7zQzAAYaryDu6iPSC+CIb094g=
211212
github.com/libp2p/go-libp2p-pnet v0.2.0 h1:J6htxttBipJujEjz1y0a5+eYoiPcFHhSYHH6na5f0/k=
@@ -214,8 +215,8 @@ github.com/libp2p/go-libp2p-testing v0.1.2-0.20200422005655-8775583591d8/go.mod
214215
github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotlKsNSbKQ/lImlOWF0=
215216
github.com/libp2p/go-libp2p-testing v0.5.0 h1:bTjC29TTQ/ODq0ld3+0KLq3irdA5cAH3OMbRi0/QsvE=
216217
github.com/libp2p/go-libp2p-testing v0.5.0/go.mod h1:QBk8fqIL1XNcno/l3/hhaIEn4aLRijpYOR+zVjjlh+A=
217-
github.com/libp2p/go-libp2p-transport-upgrader v0.5.0 h1:7SDl3O2+AYOgfE40Mis83ClpfGNkNA6m4FwhbOHs+iI=
218-
github.com/libp2p/go-libp2p-transport-upgrader v0.5.0/go.mod h1:Rc+XODlB3yce7dvFV4q/RmyJGsFcCZRkeZMu/Zdg0mo=
218+
github.com/libp2p/go-libp2p-transport-upgrader v0.6.1-0.20211222110956-14ae14228133 h1:XA2uLVBvz2FTe92xs6VbtOi5v7XCTUYdUZJmVNBe2Xw=
219+
github.com/libp2p/go-libp2p-transport-upgrader v0.6.1-0.20211222110956-14ae14228133/go.mod h1:9wxo9UX25cfcSsI6BCDZARAP1Dks/1Ghi+BuEnrYvDM=
219220
github.com/libp2p/go-maddr-filter v0.1.0/go.mod h1:VzZhTXkMucEGGEOSKddrwGiOv0tUhgnKqNEmIAz/bPU=
220221
github.com/libp2p/go-mplex v0.3.0 h1:U1T+vmCYJaEoDJPV1aq31N56hS+lJgb397GsylNSgrU=
221222
github.com/libp2p/go-mplex v0.3.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ=

tcp.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,21 @@ func DisableReuseport() Option {
9595
return nil
9696
}
9797
}
98+
9899
func WithConnectionTimeout(d time.Duration) Option {
99100
return func(tr *TcpTransport) error {
100101
tr.connectTimeout = d
101102
return nil
102103
}
103104
}
104105

106+
func WithResourceManager(rcmgr network.ResourceManager) Option {
107+
return func(tr *TcpTransport) error {
108+
tr.rcmgr = rcmgr
109+
return nil
110+
}
111+
}
112+
105113
// TcpTransport is the TCP transport.
106114
type TcpTransport struct {
107115
// Connection upgrader for upgrading insecure stream connections to
@@ -114,6 +122,8 @@ type TcpTransport struct {
114122
// TCP connect timeout
115123
connectTimeout time.Duration
116124

125+
rcmgr network.ResourceManager
126+
117127
reuse rtpt.Transport
118128
}
119129

@@ -159,6 +169,17 @@ func (t *TcpTransport) maDial(ctx context.Context, raddr ma.Multiaddr) (manet.Co
159169

160170
// Dial dials the peer at the remote address.
161171
func (t *TcpTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error) {
172+
var connScope network.ConnectionScope
173+
if t.rcmgr != nil {
174+
var err error
175+
connScope, err = t.rcmgr.OpenConnection(network.DirOutbound, true)
176+
if err != nil {
177+
return nil, err
178+
}
179+
if err := connScope.SetPeer(p); err != nil {
180+
return nil, err
181+
}
182+
}
162183
conn, err := t.maDial(ctx, raddr)
163184
if err != nil {
164185
return nil, err
@@ -176,7 +197,7 @@ func (t *TcpTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID)
176197
if ok, isClient, _ := network.GetSimultaneousConnect(ctx); ok && !isClient {
177198
direction = network.DirInbound
178199
}
179-
return t.Upgrader.Upgrade(ctx, t, c, direction, p)
200+
return t.Upgrader.Upgrade(ctx, t, c, direction, p, connScope)
180201
}
181202

182203
// UseReuseport returns true if reuseport is enabled and available.
@@ -198,7 +219,7 @@ func (t *TcpTransport) Listen(laddr ma.Multiaddr) (transport.Listener, error) {
198219
return nil, err
199220
}
200221
list = newTracingListener(&tcpListener{list, 0})
201-
return t.Upgrader.UpgradeListener(t, list), nil
222+
return t.Upgrader.UpgradeListener(t, list, t.rcmgr), nil
202223
}
203224

204225
// Protocols returns the list of terminal protocols this transport can dial.

0 commit comments

Comments
 (0)