Skip to content

Commit d674d13

Browse files
committed
refactor!(webtransport): Export specific WebTransport Transport type
1 parent 1597922 commit d674d13

File tree

5 files changed

+49
-49
lines changed

5 files changed

+49
-49
lines changed

p2p/transport/webtransport/conn.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func (c *connMultiaddrs) RemoteMultiaddr() ma.Multiaddr { return c.remote }
2828
type conn struct {
2929
*connSecurityMultiaddrs
3030

31-
transport *transport
31+
transport *Transport
3232
session *webtransport.Session
3333

3434
scope network.ConnManagementScope
@@ -37,7 +37,7 @@ type conn struct {
3737

3838
var _ tpt.CapableConn = &conn{}
3939

40-
func newConn(tr *transport, sess *webtransport.Session, sconn *connSecurityMultiaddrs, scope network.ConnManagementScope, qconn *quic.Conn) *conn {
40+
func newConn(tr *Transport, sess *webtransport.Session, sconn *connSecurityMultiaddrs, scope network.ConnManagementScope, qconn *quic.Conn) *conn {
4141
return &conn{
4242
connSecurityMultiaddrs: sconn,
4343
transport: tr,

p2p/transport/webtransport/listener.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const handshakeTimeout = 10 * time.Second
2727
type connKey struct{}
2828

2929
type listener struct {
30-
transport *transport
30+
transport *Transport
3131
isStaticTLSConf bool
3232
reuseListener quicreuse.Listener
3333

@@ -49,7 +49,7 @@ type listener struct {
4949

5050
var _ tpt.Listener = &listener{}
5151

52-
func newListener(reuseListener quicreuse.Listener, t *transport, isStaticTLSConf bool) (tpt.Listener, error) {
52+
func newListener(reuseListener quicreuse.Listener, t *Transport, isStaticTLSConf bool) (tpt.Listener, error) {
5353
localMultiaddr, err := toWebtransportMultiaddr(reuseListener.Addr())
5454
if err != nil {
5555
return nil, err

p2p/transport/webtransport/multiaddr_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func TestWebtransportResolve(t *testing.T) {
8383
"/ip4/127.0.0.1/udp/1337/quic-v1/sni/example.com/webtransport",
8484
}
8585

86-
tpt := &transport{}
86+
tpt := &Transport{}
8787
ctx := context.Background()
8888

8989
for _, tc := range testCases {

p2p/transport/webtransport/transport.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ const errorCodeConnectionGating = 0x47415445 // GATE in ASCII
4040

4141
const certValidity = 14 * 24 * time.Hour
4242

43-
type Option func(*transport) error
43+
type Option func(*Transport) error
4444

4545
func WithClock(cl clock.Clock) Option {
46-
return func(t *transport) error {
46+
return func(t *Transport) error {
4747
t.clock = cl
4848
return nil
4949
}
@@ -54,20 +54,20 @@ func WithClock(cl clock.Clock) Option {
5454
// When dialing a multiaddr that contains a /certhash component, this library will set InsecureSkipVerify and
5555
// overwrite the VerifyPeerCertificate callback.
5656
func WithTLSClientConfig(c *tls.Config) Option {
57-
return func(t *transport) error {
57+
return func(t *Transport) error {
5858
t.tlsClientConf = c
5959
return nil
6060
}
6161
}
6262

6363
func WithHandshakeTimeout(d time.Duration) Option {
64-
return func(t *transport) error {
64+
return func(t *Transport) error {
6565
t.handshakeTimeout = d
6666
return nil
6767
}
6868
}
6969

70-
type transport struct {
70+
type Transport struct {
7171
privKey ic.PrivKey
7272
pid peer.ID
7373
clock clock.Clock
@@ -90,11 +90,11 @@ type transport struct {
9090
handshakeTimeout time.Duration
9191
}
9292

93-
var _ tpt.Transport = &transport{}
94-
var _ tpt.Resolver = &transport{}
95-
var _ io.Closer = &transport{}
93+
var _ tpt.Transport = &Transport{}
94+
var _ tpt.Resolver = &Transport{}
95+
var _ io.Closer = &Transport{}
9696

97-
func New(key ic.PrivKey, psk pnet.PSK, connManager *quicreuse.ConnManager, gater connmgr.ConnectionGater, rcmgr network.ResourceManager, opts ...Option) (tpt.Transport, error) {
97+
func New(key ic.PrivKey, psk pnet.PSK, connManager *quicreuse.ConnManager, gater connmgr.ConnectionGater, rcmgr network.ResourceManager, opts ...Option) (*Transport, error) {
9898
if len(psk) > 0 {
9999
log.Error("WebTransport doesn't support private networks yet.")
100100
return nil, errors.New("WebTransport doesn't support private networks yet")
@@ -106,7 +106,7 @@ func New(key ic.PrivKey, psk pnet.PSK, connManager *quicreuse.ConnManager, gater
106106
if err != nil {
107107
return nil, err
108108
}
109-
t := &transport{
109+
t := &Transport{
110110
pid: id,
111111
privKey: key,
112112
rcmgr: rcmgr,
@@ -129,7 +129,7 @@ func New(key ic.PrivKey, psk pnet.PSK, connManager *quicreuse.ConnManager, gater
129129
return t, nil
130130
}
131131

132-
func (t *transport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tpt.CapableConn, error) {
132+
func (t *Transport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tpt.CapableConn, error) {
133133
scope, err := t.rcmgr.OpenConnection(network.DirOutbound, false, raddr)
134134
if err != nil {
135135
log.Debug("resource manager blocked outgoing connection", "peer", p, "addr", raddr, "error", err)
@@ -145,7 +145,7 @@ func (t *transport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (tp
145145
return c, nil
146146
}
147147

148-
func (t *transport) dialWithScope(ctx context.Context, raddr ma.Multiaddr, p peer.ID, scope network.ConnManagementScope) (tpt.CapableConn, error) {
148+
func (t *Transport) dialWithScope(ctx context.Context, raddr ma.Multiaddr, p peer.ID, scope network.ConnManagementScope) (tpt.CapableConn, error) {
149149
_, addr, err := manet.DialArgs(raddr)
150150
if err != nil {
151151
return nil, err
@@ -188,7 +188,7 @@ func (t *transport) dialWithScope(ctx context.Context, raddr ma.Multiaddr, p pee
188188
return conn, nil
189189
}
190190

191-
func (t *transport) dial(ctx context.Context, addr ma.Multiaddr, url, sni string, certHashes []multihash.DecodedMultihash) (*webtransport.Session, *quic.Conn, error) {
191+
func (t *Transport) dial(ctx context.Context, addr ma.Multiaddr, url, sni string, certHashes []multihash.DecodedMultihash) (*webtransport.Session, *quic.Conn, error) {
192192
var tlsConf *tls.Config
193193
if t.tlsClientConf != nil {
194194
tlsConf = t.tlsClientConf.Clone()
@@ -232,7 +232,7 @@ func (t *transport) dial(ctx context.Context, addr ma.Multiaddr, url, sni string
232232
return sess, conn, err
233233
}
234234

235-
func (t *transport) upgrade(ctx context.Context, sess *webtransport.Session, p peer.ID, certHashes []multihash.DecodedMultihash) (*connSecurityMultiaddrs, error) {
235+
func (t *Transport) upgrade(ctx context.Context, sess *webtransport.Session, p peer.ID, certHashes []multihash.DecodedMultihash) (*connSecurityMultiaddrs, error) {
236236
local, err := toWebtransportMultiaddr(sess.LocalAddr())
237237
if err != nil {
238238
return nil, fmt.Errorf("error determining local addr: %w", err)
@@ -302,12 +302,12 @@ func decodeCertHashesFromProtobuf(b [][]byte) ([]multihash.DecodedMultihash, err
302302
return hashes, nil
303303
}
304304

305-
func (t *transport) CanDial(addr ma.Multiaddr) bool {
305+
func (t *Transport) CanDial(addr ma.Multiaddr) bool {
306306
ok, _ := IsWebtransportMultiaddr(addr)
307307
return ok
308308
}
309309

310-
func (t *transport) Listen(laddr ma.Multiaddr) (tpt.Listener, error) {
310+
func (t *Transport) Listen(laddr ma.Multiaddr) (tpt.Listener, error) {
311311
isWebTransport, certhashCount := IsWebtransportMultiaddr(laddr)
312312
if !isWebTransport {
313313
return nil, fmt.Errorf("cannot listen on non-WebTransport addr: %s", laddr)
@@ -341,23 +341,23 @@ func (t *transport) Listen(laddr ma.Multiaddr) (tpt.Listener, error) {
341341
return newListener(ln, t, t.staticTLSConf != nil)
342342
}
343343

344-
func (t *transport) Protocols() []int {
344+
func (t *Transport) Protocols() []int {
345345
return []int{ma.P_WEBTRANSPORT}
346346
}
347347

348-
func (t *transport) Proxy() bool {
348+
func (t *Transport) Proxy() bool {
349349
return false
350350
}
351351

352-
func (t *transport) Close() error {
352+
func (t *Transport) Close() error {
353353
t.listenOnce.Do(func() {})
354354
if t.certManager != nil {
355355
return t.certManager.Close()
356356
}
357357
return nil
358358
}
359359

360-
func (t *transport) allowWindowIncrease(conn *quic.Conn, size uint64) bool {
360+
func (t *Transport) allowWindowIncrease(conn *quic.Conn, size uint64) bool {
361361
t.connMx.Lock()
362362
defer t.connMx.Unlock()
363363

@@ -368,13 +368,13 @@ func (t *transport) allowWindowIncrease(conn *quic.Conn, size uint64) bool {
368368
return c.allowWindowIncrease(size)
369369
}
370370

371-
func (t *transport) addConn(conn *quic.Conn, c *conn) {
371+
func (t *Transport) addConn(conn *quic.Conn, c *conn) {
372372
t.connMx.Lock()
373373
t.conns[conn] = c
374374
t.connMx.Unlock()
375375
}
376376

377-
func (t *transport) removeConn(conn *quic.Conn) {
377+
func (t *Transport) removeConn(conn *quic.Conn) {
378378
t.connMx.Lock()
379379
delete(t.conns, conn)
380380
t.connMx.Unlock()
@@ -403,7 +403,7 @@ func extractSNI(maddr ma.Multiaddr) (sni string, foundSniComponent bool) {
403403
}
404404

405405
// Resolve implements transport.Resolver
406-
func (t *transport) Resolve(_ context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error) {
406+
func (t *Transport) Resolve(_ context.Context, maddr ma.Multiaddr) ([]ma.Multiaddr, error) {
407407
sni, foundSniComponent := extractSNI(maddr)
408408

409409
if foundSniComponent || sni == "" {
@@ -433,7 +433,7 @@ func (t *transport) Resolve(_ context.Context, maddr ma.Multiaddr) ([]ma.Multiad
433433

434434
// AddCertHashes adds the current certificate hashes to a multiaddress.
435435
// If called before Listen, it's a no-op.
436-
func (t *transport) AddCertHashes(m ma.Multiaddr) (ma.Multiaddr, bool) {
436+
func (t *Transport) AddCertHashes(m ma.Multiaddr) (ma.Multiaddr, bool) {
437437
if !t.hasCertManager.Load() {
438438
return m, false
439439
}

p2p/transport/webtransport/transport_test.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func TestTransport(t *testing.T) {
108108
serverID, serverKey := newIdentity(t)
109109
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), nil, nil)
110110
require.NoError(t, err)
111-
defer tr.(io.Closer).Close()
111+
defer tr.Close()
112112
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
113113
require.NoError(t, err)
114114
defer ln.Close()
@@ -118,7 +118,7 @@ func TestTransport(t *testing.T) {
118118
_, clientKey := newIdentity(t)
119119
tr2, err := libp2pwebtransport.New(clientKey, nil, newConnManager(t), nil, nil)
120120
require.NoError(t, err)
121-
defer tr2.(io.Closer).Close()
121+
defer tr2.Close()
122122

123123
conn, err := tr2.Dial(context.Background(), ln.Multiaddr(), serverID)
124124
require.NoError(t, err)
@@ -154,7 +154,7 @@ func TestHashVerification(t *testing.T) {
154154
serverID, serverKey := newIdentity(t)
155155
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), nil, &network.NullResourceManager{})
156156
require.NoError(t, err)
157-
defer tr.(io.Closer).Close()
157+
defer tr.Close()
158158
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
159159
require.NoError(t, err)
160160
done := make(chan struct{})
@@ -167,7 +167,7 @@ func TestHashVerification(t *testing.T) {
167167
_, clientKey := newIdentity(t)
168168
tr2, err := libp2pwebtransport.New(clientKey, nil, newConnManager(t), nil, &network.NullResourceManager{})
169169
require.NoError(t, err)
170-
defer tr2.(io.Closer).Close()
170+
defer tr2.Close()
171171

172172
foobarHash := getCerthashComponent(t, []byte("foobar"))
173173

@@ -212,7 +212,7 @@ func TestCanDial(t *testing.T) {
212212
_, key := newIdentity(t)
213213
tr, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, &network.NullResourceManager{})
214214
require.NoError(t, err)
215-
defer tr.(io.Closer).Close()
215+
defer tr.Close()
216216

217217
for _, addr := range valid {
218218
require.Truef(t, tr.CanDial(addr), "expected to be able to dial %s", addr)
@@ -237,7 +237,7 @@ func TestListenAddrValidity(t *testing.T) {
237237
_, key := newIdentity(t)
238238
tr, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, &network.NullResourceManager{})
239239
require.NoError(t, err)
240-
defer tr.(io.Closer).Close()
240+
defer tr.Close()
241241

242242
for _, addr := range valid {
243243
ln, err := tr.Listen(addr)
@@ -254,7 +254,7 @@ func TestListenerAddrs(t *testing.T) {
254254
_, key := newIdentity(t)
255255
tr, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, &network.NullResourceManager{})
256256
require.NoError(t, err)
257-
defer tr.(io.Closer).Close()
257+
defer tr.Close()
258258

259259
ln1, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
260260
require.NoError(t, err)
@@ -277,7 +277,7 @@ func TestResourceManagerDialing(t *testing.T) {
277277
_, key := newIdentity(t)
278278
tr, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, rcmgr)
279279
require.NoError(t, err)
280-
defer tr.(io.Closer).Close()
280+
defer tr.Close()
281281
l, err := tr.Listen(addr)
282282
require.NoError(t, err)
283283

@@ -296,7 +296,7 @@ func TestResourceManagerListening(t *testing.T) {
296296
clientID, key := newIdentity(t)
297297
cl, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, &network.NullResourceManager{})
298298
require.NoError(t, err)
299-
defer cl.(io.Closer).Close()
299+
defer cl.Close()
300300

301301
t.Run("blocking the connection", func(t *testing.T) {
302302
serverID, key := newIdentity(t)
@@ -375,7 +375,7 @@ func TestConnectionGaterDialing(t *testing.T) {
375375
serverID, serverKey := newIdentity(t)
376376
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), nil, &network.NullResourceManager{})
377377
require.NoError(t, err)
378-
defer tr.(io.Closer).Close()
378+
defer tr.Close()
379379
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
380380
require.NoError(t, err)
381381
defer ln.Close()
@@ -386,7 +386,7 @@ func TestConnectionGaterDialing(t *testing.T) {
386386
_, key := newIdentity(t)
387387
cl, err := libp2pwebtransport.New(key, nil, newConnManager(t), connGater, &network.NullResourceManager{})
388388
require.NoError(t, err)
389-
defer cl.(io.Closer).Close()
389+
defer cl.Close()
390390
_, err = cl.Dial(context.Background(), ln.Multiaddr(), serverID)
391391
require.EqualError(t, err, "secured connection gated")
392392
}
@@ -399,7 +399,7 @@ func TestConnectionGaterInterceptAccept(t *testing.T) {
399399
serverID, serverKey := newIdentity(t)
400400
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), connGater, &network.NullResourceManager{})
401401
require.NoError(t, err)
402-
defer tr.(io.Closer).Close()
402+
defer tr.Close()
403403
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
404404
require.NoError(t, err)
405405
defer ln.Close()
@@ -412,7 +412,7 @@ func TestConnectionGaterInterceptAccept(t *testing.T) {
412412
_, key := newIdentity(t)
413413
cl, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, &network.NullResourceManager{})
414414
require.NoError(t, err)
415-
defer cl.(io.Closer).Close()
415+
defer cl.Close()
416416
_, err = cl.Dial(context.Background(), ln.Multiaddr(), serverID)
417417
require.EqualError(t, err, "received status 403")
418418
}
@@ -425,15 +425,15 @@ func TestConnectionGaterInterceptSecured(t *testing.T) {
425425
serverID, serverKey := newIdentity(t)
426426
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), connGater, &network.NullResourceManager{})
427427
require.NoError(t, err)
428-
defer tr.(io.Closer).Close()
428+
defer tr.Close()
429429
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
430430
require.NoError(t, err)
431431
defer ln.Close()
432432

433433
clientID, key := newIdentity(t)
434434
cl, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, &network.NullResourceManager{})
435435
require.NoError(t, err)
436-
defer cl.(io.Closer).Close()
436+
defer cl.Close()
437437

438438
connGater.EXPECT().InterceptAccept(gomock.Any()).Return(true)
439439
connGater.EXPECT().InterceptSecured(network.DirInbound, clientID, gomock.Any()).Do(func(_ network.Direction, _ peer.ID, addrs network.ConnMultiaddrs) {
@@ -461,7 +461,7 @@ func TestAcceptQueueFilledUp(t *testing.T) {
461461
serverID, serverKey := newIdentity(t)
462462
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), nil, &network.NullResourceManager{})
463463
require.NoError(t, err)
464-
defer tr.(io.Closer).Close()
464+
defer tr.Close()
465465
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
466466
require.NoError(t, err)
467467
defer ln.Close()
@@ -471,7 +471,7 @@ func TestAcceptQueueFilledUp(t *testing.T) {
471471
_, key := newIdentity(t)
472472
cl, err := libp2pwebtransport.New(key, nil, newConnManager(t), nil, &network.NullResourceManager{})
473473
require.NoError(t, err)
474-
defer cl.(io.Closer).Close()
474+
defer cl.Close()
475475
return cl.Dial(context.Background(), ln.Multiaddr(), serverID)
476476
}
477477

@@ -566,7 +566,7 @@ func TestFlowControlWindowIncrease(t *testing.T) {
566566
serverRcmgr := &reportingRcmgr{report: serverWindowIncreases}
567567
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), nil, serverRcmgr)
568568
require.NoError(t, err)
569-
defer tr.(io.Closer).Close()
569+
defer tr.Close()
570570
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
571571
require.NoError(t, err)
572572
defer ln.Close()
@@ -594,7 +594,7 @@ func TestFlowControlWindowIncrease(t *testing.T) {
594594
clientRcmgr := &reportingRcmgr{report: clientWindowIncreases}
595595
tr2, err := libp2pwebtransport.New(clientKey, nil, newConnManager(t), nil, clientRcmgr)
596596
require.NoError(t, err)
597-
defer tr2.(io.Closer).Close()
597+
defer tr2.Close()
598598

599599
var addr ma.Multiaddr
600600
for _, comp := range ln.Multiaddr() {
@@ -842,7 +842,7 @@ func TestH3ConnClosed(t *testing.T) {
842842
_, serverKey := newIdentity(t)
843843
tr, err := libp2pwebtransport.New(serverKey, nil, newConnManager(t), nil, nil, libp2pwebtransport.WithHandshakeTimeout(1*time.Second))
844844
require.NoError(t, err)
845-
defer tr.(io.Closer).Close()
845+
defer tr.Close()
846846
ln, err := tr.Listen(ma.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport"))
847847
require.NoError(t, err)
848848
defer ln.Close()

0 commit comments

Comments
 (0)