Skip to content

Commit

Permalink
implement the new network.MuxedConn interface (#29)
Browse files Browse the repository at this point in the history
  • Loading branch information
marten-seemann authored Jan 17, 2022
1 parent c04213f commit ce30ce8
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
11 changes: 6 additions & 5 deletions p2p/muxer/mplex/conn.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ package peerstream_multiplex
import (
"context"

"github.com/libp2p/go-libp2p-core/mux"
"github.com/libp2p/go-libp2p-core/network"

mp "github.com/libp2p/go-mplex"
)

type conn mp.Multiplex

var _ network.MuxedConn = &conn{}

func (c *conn) Close() error {
return c.mplex().Close()
}
Expand All @@ -18,7 +21,7 @@ func (c *conn) IsClosed() bool {
}

// OpenStream creates a new stream.
func (c *conn) OpenStream(ctx context.Context) (mux.MuxedStream, error) {
func (c *conn) OpenStream(ctx context.Context) (network.MuxedStream, error) {
s, err := c.mplex().NewStream(ctx)
if err != nil {
return nil, err
Expand All @@ -27,7 +30,7 @@ func (c *conn) OpenStream(ctx context.Context) (mux.MuxedStream, error) {
}

// AcceptStream accepts a stream opened by the other side.
func (c *conn) AcceptStream() (mux.MuxedStream, error) {
func (c *conn) AcceptStream() (network.MuxedStream, error) {
s, err := c.mplex().Accept()
if err != nil {
return nil, err
Expand All @@ -38,5 +41,3 @@ func (c *conn) AcceptStream() (mux.MuxedStream, error) {
func (c *conn) mplex() *mp.Multiplex {
return (*mp.Multiplex)(c)
}

var _ mux.MuxedConn = &conn{}
13 changes: 7 additions & 6 deletions p2p/muxer/mplex/stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,20 @@ package peerstream_multiplex
import (
"time"

"github.com/libp2p/go-libp2p-core/mux"
"github.com/libp2p/go-libp2p-core/network"

mp "github.com/libp2p/go-mplex"
)

// stream implements mux.MuxedStream over mplex.Stream.
// stream implements network.MuxedStream over mplex.Stream.
type stream mp.Stream

var _ network.MuxedStream = &stream{}

func (s *stream) Read(b []byte) (n int, err error) {
n, err = s.mplex().Read(b)
if err == mp.ErrStreamReset {
err = mux.ErrReset
err = network.ErrReset
}

return n, err
Expand All @@ -22,7 +25,7 @@ func (s *stream) Read(b []byte) (n int, err error) {
func (s *stream) Write(b []byte) (n int, err error) {
n, err = s.mplex().Write(b)
if err == mp.ErrStreamReset {
err = mux.ErrReset
err = network.ErrReset
}

return n, err
Expand Down Expand Up @@ -59,5 +62,3 @@ func (s *stream) SetWriteDeadline(t time.Time) error {
func (s *stream) mplex() *mp.Stream {
return (*mp.Stream)(s)
}

var _ mux.MuxedStream = &stream{}
10 changes: 5 additions & 5 deletions p2p/muxer/mplex/transport.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@ package peerstream_multiplex
import (
"net"

"github.com/libp2p/go-libp2p-core/mux"
"github.com/libp2p/go-libp2p-core/network"

mp "github.com/libp2p/go-mplex"
)

// DefaultTransport has default settings for Transport
var DefaultTransport = &Transport{}

var _ network.Multiplexer = &Transport{}

// Transport implements mux.Multiplexer that constructs
// mplex-backed muxed connections.
type Transport struct{}

func (t *Transport) NewConn(nc net.Conn, isServer bool) (mux.MuxedConn, error) {
return (*conn)(mp.NewMultiplex(nc, isServer)), nil
func (t *Transport) NewConn(nc net.Conn, isServer bool, scope network.PeerScope) (network.MuxedConn, error) {
return (*conn)(mp.NewMultiplex(nc, isServer, scope)), nil
}

var _ mux.Multiplexer = &Transport{}

0 comments on commit ce30ce8

Please sign in to comment.