Skip to content

Commit

Permalink
Merge pull request #111 from libp2p/upgrader-interface
Browse files Browse the repository at this point in the history
use the transport.Upgrader interface
  • Loading branch information
marten-seemann authored Jan 4, 2022
2 parents cd2c3d8 + c747de3 commit 69d3c45
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 23 deletions.
5 changes: 2 additions & 3 deletions p2p/transport/tcp/tcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/libp2p/go-libp2p-core/peer"
"github.com/libp2p/go-libp2p-core/transport"

tptu "github.com/libp2p/go-libp2p-transport-upgrader"
rtpt "github.com/libp2p/go-reuseport-transport"

logging "github.com/ipfs/go-log/v2"
Expand Down Expand Up @@ -106,7 +105,7 @@ func WithConnectionTimeout(d time.Duration) Option {
type TcpTransport struct {
// Connection upgrader for upgrading insecure stream connections to
// secure multiplex connections.
Upgrader *tptu.Upgrader
Upgrader transport.Upgrader

// Explicitly disable reuseport.
disableReuseport bool
Expand All @@ -121,7 +120,7 @@ var _ transport.Transport = &TcpTransport{}

// NewTCPTransport creates a tcp transport object that tracks dialers and listeners
// created. It represents an entire TCP stack (though it might not necessarily be).
func NewTCPTransport(upgrader *tptu.Upgrader, opts ...Option) (*TcpTransport, error) {
func NewTCPTransport(upgrader transport.Upgrader, opts ...Option) (*TcpTransport, error) {
tr := &TcpTransport{
Upgrader: upgrader,
connectTimeout: defaultConnectTimeout, // can be set by using the WithConnectionTimeout option
Expand Down
34 changes: 14 additions & 20 deletions p2p/transport/tcp/tcp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ package tcp
import (
"testing"

csms "github.com/libp2p/go-conn-security-multistream"
"github.com/libp2p/go-libp2p-core/crypto"
"github.com/libp2p/go-libp2p-core/peer"
"github.com/libp2p/go-libp2p-core/sec"
"github.com/libp2p/go-libp2p-core/sec/insecure"
"github.com/libp2p/go-libp2p-core/transport"

csms "github.com/libp2p/go-conn-security-multistream"
mplex "github.com/libp2p/go-libp2p-mplex"
ttransport "github.com/libp2p/go-libp2p-testing/suites/transport"
tptu "github.com/libp2p/go-libp2p-transport-upgrader"
Expand All @@ -22,15 +24,13 @@ func TestTcpTransport(t *testing.T) {
peerA, ia := makeInsecureMuxer(t)
_, ib := makeInsecureMuxer(t)

ta, err := NewTCPTransport(&tptu.Upgrader{
Secure: ia,
Muxer: new(mplex.Transport),
})
ua, err := tptu.New(ia, new(mplex.Transport))
require.NoError(t, err)
ta, err := NewTCPTransport(ua)
require.NoError(t, err)
ub, err := tptu.New(ib, new(mplex.Transport))
require.NoError(t, err)
tb, err := NewTCPTransport(&tptu.Upgrader{
Secure: ib,
Muxer: new(mplex.Transport),
})
tb, err := NewTCPTransport(ub)
require.NoError(t, err)

zero := "/ip4/127.0.0.1/tcp/0"
Expand All @@ -46,11 +46,8 @@ func TestTcpTransportCantDialDNS(t *testing.T) {
dnsa, err := ma.NewMultiaddr("/dns4/example.com/tcp/1234")
require.NoError(t, err)

_, sm := makeInsecureMuxer(t)
tpt, err := NewTCPTransport(&tptu.Upgrader{
Secure: sm,
Muxer: new(mplex.Transport),
})
var u transport.Upgrader
tpt, err := NewTCPTransport(u)
require.NoError(t, err)

if tpt.CanDial(dnsa) {
Expand All @@ -67,15 +64,12 @@ func TestTcpTransportCantListenUtp(t *testing.T) {
utpa, err := ma.NewMultiaddr("/ip4/127.0.0.1/udp/0/utp")
require.NoError(t, err)

_, sm := makeInsecureMuxer(t)
tpt, err := NewTCPTransport(&tptu.Upgrader{
Secure: sm,
Muxer: new(mplex.Transport),
})
var u transport.Upgrader
tpt, err := NewTCPTransport(u)
require.NoError(t, err)

_, err = tpt.Listen(utpa)
require.Error(t, err, "shouldnt be able to listen on utp addr with tcp transport")
require.Error(t, err, "shouldn't be able to listen on utp addr with tcp transport")

envReuseportVal = false
}
Expand Down

0 comments on commit 69d3c45

Please sign in to comment.