From 811f0c738998da13d1406e8510b1b75e05325f2a Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Sat, 11 Jul 2015 18:51:47 -0700 Subject: [PATCH 01/17] extracted from go-peerstream --- p2p/muxer/muxer-multistream/multistream.go | 60 +++++++++++++++++++ .../muxer-multistream/multistream_test.go | 11 ++++ 2 files changed, 71 insertions(+) create mode 100644 p2p/muxer/muxer-multistream/multistream.go create mode 100644 p2p/muxer/muxer-multistream/multistream_test.go diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go new file mode 100644 index 0000000000..1d8e8c2b7c --- /dev/null +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -0,0 +1,60 @@ +// package multistream implements a peerstream transport using +// go-multistream to select the underlying stream muxer +package multistream + +import ( + "net" + + mss "github.com/jbenet/go-stream-mux/Godeps/_workspace/src/github.com/whyrusleeping/go-multistream" + + smux "github.com/jbenet/go-stream-mux" + multiplex "github.com/jbenet/go-stream-mux/multiplex" + spdy "github.com/jbenet/go-stream-mux/spdystream" + yamux "github.com/jbenet/go-stream-mux/yamux" +) + +type transport struct { + mux *mss.MultistreamMuxer + + tpts map[string]smux.Transport +} + +func NewTransport() smux.Transport { + mux := mss.NewMultistreamMuxer() + mux.AddHandler("/multiplex", nil) + mux.AddHandler("/spdystream", nil) + mux.AddHandler("/yamux", nil) + + tpts := map[string]smux.Transport{ + "/multiplex": multiplex.DefaultTransport, + "/spdystream": spdy.Transport, + "/yamux": yamux.DefaultTransport, + } + + return &transport{ + mux: mux, + tpts: tpts, + } +} + +func (t *transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { + var proto string + if isServer { + selected, _, err := t.mux.Negotiate(nc) + if err != nil { + return nil, err + } + proto = selected + } else { + // prefer yamux + selected, err := mss.SelectOneOf([]string{"/yamux", "/spdystream", "/multiplex"}, nc) + if err != nil { + return nil, err + } + proto = selected + } + + tpt := t.tpts[proto] + + return tpt.NewConn(nc, isServer) +} diff --git a/p2p/muxer/muxer-multistream/multistream_test.go b/p2p/muxer/muxer-multistream/multistream_test.go new file mode 100644 index 0000000000..95a9264c69 --- /dev/null +++ b/p2p/muxer/muxer-multistream/multistream_test.go @@ -0,0 +1,11 @@ +package multistream + +import ( + "testing" + + test "github.com/jbenet/go-stream-mux/test" +) + +func TestMultiStreamTransport(t *testing.T) { + test.SubtestAll(t, NewTransport()) +} From 5f17d146eb78ae6810a2107a42396a238c04f1ec Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Sat, 11 Jul 2015 19:17:39 -0700 Subject: [PATCH 02/17] fixed urls --- p2p/muxer/muxer-multistream/multistream.go | 8 ++++---- p2p/muxer/muxer-multistream/multistream_test.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 1d8e8c2b7c..267c6e460b 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -5,12 +5,12 @@ package multistream import ( "net" - mss "github.com/jbenet/go-stream-mux/Godeps/_workspace/src/github.com/whyrusleeping/go-multistream" + mss "github.com/jbenet/go-stream-muxer/Godeps/_workspace/src/github.com/whyrusleeping/go-multistream" smux "github.com/jbenet/go-stream-mux" - multiplex "github.com/jbenet/go-stream-mux/multiplex" - spdy "github.com/jbenet/go-stream-mux/spdystream" - yamux "github.com/jbenet/go-stream-mux/yamux" + multiplex "github.com/jbenet/go-stream-muxer/multiplex" + spdy "github.com/jbenet/go-stream-muxer/spdystream" + yamux "github.com/jbenet/go-stream-muxer/yamux" ) type transport struct { diff --git a/p2p/muxer/muxer-multistream/multistream_test.go b/p2p/muxer/muxer-multistream/multistream_test.go index 95a9264c69..de1a9e4cd8 100644 --- a/p2p/muxer/muxer-multistream/multistream_test.go +++ b/p2p/muxer/muxer-multistream/multistream_test.go @@ -3,7 +3,7 @@ package multistream import ( "testing" - test "github.com/jbenet/go-stream-mux/test" + test "github.com/jbenet/go-stream-muxer/test" ) func TestMultiStreamTransport(t *testing.T) { From 49ce9ea2a51e1819a97e851ec807e97f8a228c70 Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Sat, 11 Jul 2015 19:39:04 -0700 Subject: [PATCH 03/17] links fix --- p2p/muxer/muxer-multistream/multistream.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 267c6e460b..d13605531b 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -7,7 +7,7 @@ import ( mss "github.com/jbenet/go-stream-muxer/Godeps/_workspace/src/github.com/whyrusleeping/go-multistream" - smux "github.com/jbenet/go-stream-mux" + smux "github.com/jbenet/go-stream-muxer" multiplex "github.com/jbenet/go-stream-muxer/multiplex" spdy "github.com/jbenet/go-stream-muxer/spdystream" yamux "github.com/jbenet/go-stream-muxer/yamux" From 47680235d8dbe8ee1f02b8e2a8105d57eee0fef0 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Mon, 7 Mar 2016 19:55:13 -0800 Subject: [PATCH 04/17] make multistream multiplexer customizable --- p2p/muxer/muxer-multistream/multistream.go | 30 +++++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index d13605531b..94372e0c75 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -13,13 +13,15 @@ import ( yamux "github.com/jbenet/go-stream-muxer/yamux" ) -type transport struct { +type Transport struct { mux *mss.MultistreamMuxer tpts map[string]smux.Transport + + OrderPreference []string } -func NewTransport() smux.Transport { +func NewTransport() *Transport { mux := mss.NewMultistreamMuxer() mux.AddHandler("/multiplex", nil) mux.AddHandler("/spdystream", nil) @@ -31,13 +33,27 @@ func NewTransport() smux.Transport { "/yamux": yamux.DefaultTransport, } - return &transport{ - mux: mux, - tpts: tpts, + return &Transport{ + mux: mux, + tpts: tpts, + OrderPreference: []string{"/yamux", "/spdystream", "/multiplex"}, + } +} + +func NewBlankTransport() *Transport { + return &Transport{ + mux: mss.NewMultistreamMuxer(), + tpts: make(map[string]smux.Transport), } } -func (t *transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { +func (t *Transport) AddTransport(path string, tpt smux.Transport) { + t.mux.AddHandler(path, nil) + t.tpts[path] = tpt + t.OrderPreference = append(t.OrderPreference, path) +} + +func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { var proto string if isServer { selected, _, err := t.mux.Negotiate(nc) @@ -47,7 +63,7 @@ func (t *transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { proto = selected } else { // prefer yamux - selected, err := mss.SelectOneOf([]string{"/yamux", "/spdystream", "/multiplex"}, nc) + selected, err := mss.SelectOneOf(t.OrderPreference, nc) if err != nil { return nil, err } From ea09f2754ca7b13af811e3a7f705b161fd93d07d Mon Sep 17 00:00:00 2001 From: Jeromy Date: Mon, 2 May 2016 15:24:02 -0700 Subject: [PATCH 05/17] gxify and update deps --- p2p/muxer/muxer-multistream/multistream.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 94372e0c75..1c90485def 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -5,7 +5,7 @@ package multistream import ( "net" - mss "github.com/jbenet/go-stream-muxer/Godeps/_workspace/src/github.com/whyrusleeping/go-multistream" + mss "github.com/whyrusleeping/go-multistream" smux "github.com/jbenet/go-stream-muxer" multiplex "github.com/jbenet/go-stream-muxer/multiplex" From df16981dae12451cdae187be52074875b4f6bb89 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Wed, 4 May 2016 15:51:32 -0700 Subject: [PATCH 06/17] rewrite paths to gx versions --- p2p/muxer/muxer-multistream/multistream.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 1c90485def..57d30b0ef1 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -5,7 +5,7 @@ package multistream import ( "net" - mss "github.com/whyrusleeping/go-multistream" + mss "gx/ipfs/Qmf91yhgRLo2dhhbc5zZ7TxjMaR1oxaWaoc9zRZdi1kU4a/go-multistream" smux "github.com/jbenet/go-stream-muxer" multiplex "github.com/jbenet/go-stream-muxer/multiplex" From 416d561682bb6d428075a5d08a975407858e0761 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Thu, 12 May 2016 22:41:03 -0700 Subject: [PATCH 07/17] WIP --- p2p/muxer/muxer-multistream/multistream.go | 22 ------------------- .../muxer-multistream/multistream_test.go | 5 ++++- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 57d30b0ef1..4e4682e0d4 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -8,9 +8,6 @@ import ( mss "gx/ipfs/Qmf91yhgRLo2dhhbc5zZ7TxjMaR1oxaWaoc9zRZdi1kU4a/go-multistream" smux "github.com/jbenet/go-stream-muxer" - multiplex "github.com/jbenet/go-stream-muxer/multiplex" - spdy "github.com/jbenet/go-stream-muxer/spdystream" - yamux "github.com/jbenet/go-stream-muxer/yamux" ) type Transport struct { @@ -21,25 +18,6 @@ type Transport struct { OrderPreference []string } -func NewTransport() *Transport { - mux := mss.NewMultistreamMuxer() - mux.AddHandler("/multiplex", nil) - mux.AddHandler("/spdystream", nil) - mux.AddHandler("/yamux", nil) - - tpts := map[string]smux.Transport{ - "/multiplex": multiplex.DefaultTransport, - "/spdystream": spdy.Transport, - "/yamux": yamux.DefaultTransport, - } - - return &Transport{ - mux: mux, - tpts: tpts, - OrderPreference: []string{"/yamux", "/spdystream", "/multiplex"}, - } -} - func NewBlankTransport() *Transport { return &Transport{ mux: mss.NewMultistreamMuxer(), diff --git a/p2p/muxer/muxer-multistream/multistream_test.go b/p2p/muxer/muxer-multistream/multistream_test.go index de1a9e4cd8..f13a909ccc 100644 --- a/p2p/muxer/muxer-multistream/multistream_test.go +++ b/p2p/muxer/muxer-multistream/multistream_test.go @@ -3,9 +3,12 @@ package multistream import ( "testing" + spdy "github.com/jbenet/go-stream-muxer/spdystream" test "github.com/jbenet/go-stream-muxer/test" ) func TestMultiStreamTransport(t *testing.T) { - test.SubtestAll(t, NewTransport()) + tpt := NewBlankTransport() + tpt.AddTransport("/spdy", spdy.Transport) + test.SubtestAll(t, tpt) } From 4d9e0bd068c8ea0b12f5f836f566149e3b8f7598 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Thu, 12 May 2016 23:09:34 -0700 Subject: [PATCH 08/17] extract from go-stream-muxer --- p2p/muxer/muxer-multistream/multistream.go | 1 - p2p/muxer/muxer-multistream/multistream_test.go | 14 -------------- 2 files changed, 15 deletions(-) delete mode 100644 p2p/muxer/muxer-multistream/multistream_test.go diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 4e4682e0d4..8ac74235c0 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -40,7 +40,6 @@ func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { } proto = selected } else { - // prefer yamux selected, err := mss.SelectOneOf(t.OrderPreference, nc) if err != nil { return nil, err diff --git a/p2p/muxer/muxer-multistream/multistream_test.go b/p2p/muxer/muxer-multistream/multistream_test.go deleted file mode 100644 index f13a909ccc..0000000000 --- a/p2p/muxer/muxer-multistream/multistream_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package multistream - -import ( - "testing" - - spdy "github.com/jbenet/go-stream-muxer/spdystream" - test "github.com/jbenet/go-stream-muxer/test" -) - -func TestMultiStreamTransport(t *testing.T) { - tpt := NewBlankTransport() - tpt.AddTransport("/spdy", spdy.Transport) - test.SubtestAll(t, tpt) -} From c06505549e461b62a4476db52a7a8ce77f5cac96 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Fri, 13 May 2016 09:18:43 -0700 Subject: [PATCH 09/17] gx publish version 1.0.0 --- p2p/muxer/muxer-multistream/multistream.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 8ac74235c0..94b2320054 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -5,7 +5,7 @@ package multistream import ( "net" - mss "gx/ipfs/Qmf91yhgRLo2dhhbc5zZ7TxjMaR1oxaWaoc9zRZdi1kU4a/go-multistream" + mss "github.com/whyrusleeping/go-multistream" smux "github.com/jbenet/go-stream-muxer" ) From 06b858b3c09a706cbf8711c41eab5b9de84873c3 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Wed, 10 Aug 2016 09:15:53 -0700 Subject: [PATCH 10/17] gx publish v1.1.0 --- p2p/muxer/muxer-multistream/multistream.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 94b2320054..fdb76f02f6 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -3,6 +3,7 @@ package multistream import ( + "fmt" "net" mss "github.com/whyrusleeping/go-multistream" @@ -47,7 +48,10 @@ func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { proto = selected } - tpt := t.tpts[proto] + tpt, ok := t.tpts[proto] + if !ok { + return nil, fmt.Errorf("selected protocol we don't have a transport for") + } return tpt.NewConn(nc, isServer) } From 7d51c0fbb42cfb8c700d1ba6e33d847e1652885d Mon Sep 17 00:00:00 2001 From: Jeromy Date: Sat, 5 Nov 2016 15:55:49 -0700 Subject: [PATCH 11/17] add timeout for negotiate --- p2p/muxer/muxer-multistream/multistream.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index fdb76f02f6..87ac7f7c6c 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -5,24 +5,30 @@ package multistream import ( "fmt" "net" + "time" mss "github.com/whyrusleeping/go-multistream" smux "github.com/jbenet/go-stream-muxer" ) +var DefaultNegotiateTimeout = time.Second * 60 + type Transport struct { mux *mss.MultistreamMuxer tpts map[string]smux.Transport + NegotiateTimeout time.Duration + OrderPreference []string } func NewBlankTransport() *Transport { return &Transport{ - mux: mss.NewMultistreamMuxer(), - tpts: make(map[string]smux.Transport), + mux: mss.NewMultistreamMuxer(), + tpts: make(map[string]smux.Transport), + NegotiateTimeout: DefaultNegotiateTimeout, } } @@ -33,6 +39,12 @@ func (t *Transport) AddTransport(path string, tpt smux.Transport) { } func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { + if t.NegotiateTimeout != 0 { + if err := nc.SetDeadline(time.Now().Add(t.NegotiateTimeout)); err != nil { + return nil, err + } + } + var proto string if isServer { selected, _, err := t.mux.Negotiate(nc) @@ -48,6 +60,12 @@ func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { proto = selected } + if t.NegotiateTimeout != 0 { + if err := nc.SetDeadline(time.Time{}); err != nil { + return nil, err + } + } + tpt, ok := t.tpts[proto] if !ok { return nil, fmt.Errorf("selected protocol we don't have a transport for") From 3d5df6b14f8de393b424319ad745d4602eabb85a Mon Sep 17 00:00:00 2001 From: Jeromy Date: Tue, 10 Jan 2017 06:46:38 -0800 Subject: [PATCH 12/17] fix multistream import paths --- p2p/muxer/muxer-multistream/multistream.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 87ac7f7c6c..16b10164a2 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -7,9 +7,8 @@ import ( "net" "time" - mss "github.com/whyrusleeping/go-multistream" - smux "github.com/jbenet/go-stream-muxer" + mss "github.com/multiformats/go-multistream" ) var DefaultNegotiateTimeout = time.Second * 60 From 6d20f17c385925c6a180ba56a86f184556c0b02f Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 19 Jul 2017 11:37:01 +0700 Subject: [PATCH 13/17] import the correct go-stream-muxer repo --- p2p/muxer/muxer-multistream/multistream.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index 16b10164a2..ad453a9958 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -7,7 +7,7 @@ import ( "net" "time" - smux "github.com/jbenet/go-stream-muxer" + smux "github.com/libp2p/go-stream-muxer" mss "github.com/multiformats/go-multistream" ) From 486ba75ea3cab46ae5f8d350e72e418776bd5ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Sun, 26 May 2019 15:24:17 +0100 Subject: [PATCH 14/17] migrate to consolidated types; add travis config. (#2) --- p2p/muxer/muxer-multistream/multistream.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index ad453a9958..c7b5887983 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -7,7 +7,8 @@ import ( "net" "time" - smux "github.com/libp2p/go-stream-muxer" + "github.com/libp2p/go-libp2p-core/mux" + mss "github.com/multiformats/go-multistream" ) @@ -16,7 +17,7 @@ var DefaultNegotiateTimeout = time.Second * 60 type Transport struct { mux *mss.MultistreamMuxer - tpts map[string]smux.Transport + tpts map[string]mux.Multiplexer NegotiateTimeout time.Duration @@ -26,18 +27,18 @@ type Transport struct { func NewBlankTransport() *Transport { return &Transport{ mux: mss.NewMultistreamMuxer(), - tpts: make(map[string]smux.Transport), + tpts: make(map[string]mux.Multiplexer), NegotiateTimeout: DefaultNegotiateTimeout, } } -func (t *Transport) AddTransport(path string, tpt smux.Transport) { +func (t *Transport) AddTransport(path string, tpt mux.Multiplexer) { t.mux.AddHandler(path, nil) t.tpts[path] = tpt t.OrderPreference = append(t.OrderPreference, path) } -func (t *Transport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { +func (t *Transport) NewConn(nc net.Conn, isServer bool) (mux.MuxedConn, error) { if t.NegotiateTimeout != 0 { if err := nc.SetDeadline(time.Now().Add(t.NegotiateTimeout)); err != nil { return nil, err From 81251b547a73d26f6ac2b8487580535749fa79b8 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Fri, 14 Jan 2022 15:30:10 +0400 Subject: [PATCH 15/17] implement the new Multiplexer.NewConn interface --- p2p/muxer/muxer-multistream/multistream.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index c7b5887983..e4c89bc757 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -1,4 +1,4 @@ -// package multistream implements a peerstream transport using +// Package multistream implements a peerstream transport using // go-multistream to select the underlying stream muxer package multistream @@ -7,7 +7,7 @@ import ( "net" "time" - "github.com/libp2p/go-libp2p-core/mux" + "github.com/libp2p/go-libp2p-core/network" mss "github.com/multiformats/go-multistream" ) @@ -17,7 +17,7 @@ var DefaultNegotiateTimeout = time.Second * 60 type Transport struct { mux *mss.MultistreamMuxer - tpts map[string]mux.Multiplexer + tpts map[string]network.Multiplexer NegotiateTimeout time.Duration @@ -27,18 +27,18 @@ type Transport struct { func NewBlankTransport() *Transport { return &Transport{ mux: mss.NewMultistreamMuxer(), - tpts: make(map[string]mux.Multiplexer), + tpts: make(map[string]network.Multiplexer), NegotiateTimeout: DefaultNegotiateTimeout, } } -func (t *Transport) AddTransport(path string, tpt mux.Multiplexer) { +func (t *Transport) AddTransport(path string, tpt network.Multiplexer) { t.mux.AddHandler(path, nil) t.tpts[path] = tpt t.OrderPreference = append(t.OrderPreference, path) } -func (t *Transport) NewConn(nc net.Conn, isServer bool) (mux.MuxedConn, error) { +func (t *Transport) NewConn(nc net.Conn, isServer bool, scope network.PeerScope) (network.MuxedConn, error) { if t.NegotiateTimeout != 0 { if err := nc.SetDeadline(time.Now().Add(t.NegotiateTimeout)); err != nil { return nil, err @@ -71,5 +71,5 @@ func (t *Transport) NewConn(nc net.Conn, isServer bool) (mux.MuxedConn, error) { return nil, fmt.Errorf("selected protocol we don't have a transport for") } - return tpt.NewConn(nc, isServer) + return tpt.NewConn(nc, isServer, scope) } From 4f836ad145b298ec2afe4a55dbe9aa6be3f933f0 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Fri, 20 May 2022 12:30:07 +0200 Subject: [PATCH 16/17] rename the muxer_multistream package --- p2p/muxer/muxer-multistream/multistream.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/p2p/muxer/muxer-multistream/multistream.go b/p2p/muxer/muxer-multistream/multistream.go index e4c89bc757..1668c0b90b 100644 --- a/p2p/muxer/muxer-multistream/multistream.go +++ b/p2p/muxer/muxer-multistream/multistream.go @@ -1,6 +1,6 @@ -// Package multistream implements a peerstream transport using +// Package muxer_multistream implements a peerstream transport using // go-multistream to select the underlying stream muxer -package multistream +package muxer_multistream import ( "fmt" From 6fa91535bc80115363c27b977d010a75d7becd32 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Fri, 20 May 2022 12:33:54 +0200 Subject: [PATCH 17/17] switch from github.com/libp2p/go-stream-muxer-multistream to p2p/muxer/muxer-multistream --- config/muxer.go | 2 +- go.mod | 1 - p2p/net/swarm/dial_worker_test.go | 2 +- p2p/net/swarm/testing/testing.go | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/config/muxer.go b/config/muxer.go index f59d204c30..2b3e857083 100644 --- a/config/muxer.go +++ b/config/muxer.go @@ -3,7 +3,7 @@ package config import ( "fmt" - msmux "github.com/libp2p/go-stream-muxer-multistream" + msmux "github.com/libp2p/go-libp2p/p2p/muxer/muxer-multistream" "github.com/libp2p/go-libp2p-core/network" diff --git a/go.mod b/go.mod index ea8908b6fb..a0e75b7f66 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,6 @@ require ( github.com/libp2p/go-msgio v0.2.0 github.com/libp2p/go-netroute v0.2.0 github.com/libp2p/go-reuseport v0.1.0 - github.com/libp2p/go-stream-muxer-multistream v0.4.0 github.com/libp2p/go-yamux/v3 v3.1.1 github.com/libp2p/zeroconf/v2 v2.1.1 github.com/lucas-clemente/quic-go v0.27.0 diff --git a/p2p/net/swarm/dial_worker_test.go b/p2p/net/swarm/dial_worker_test.go index d9d2ef37a4..4d438bf671 100644 --- a/p2p/net/swarm/dial_worker_test.go +++ b/p2p/net/swarm/dial_worker_test.go @@ -8,6 +8,7 @@ import ( "testing" "time" + msmux "github.com/libp2p/go-libp2p/p2p/muxer/muxer-multistream" "github.com/libp2p/go-libp2p/p2p/muxer/yamux" csms "github.com/libp2p/go-libp2p/p2p/net/conn-security-multistream" tptu "github.com/libp2p/go-libp2p/p2p/net/upgrader" @@ -20,7 +21,6 @@ import ( "github.com/libp2p/go-libp2p-peerstore/pstoremem" tnet "github.com/libp2p/go-libp2p-testing/net" - msmux "github.com/libp2p/go-stream-muxer-multistream" ma "github.com/multiformats/go-multiaddr" "github.com/stretchr/testify/require" diff --git a/p2p/net/swarm/testing/testing.go b/p2p/net/swarm/testing/testing.go index c1752dc871..8640f1be9c 100644 --- a/p2p/net/swarm/testing/testing.go +++ b/p2p/net/swarm/testing/testing.go @@ -4,6 +4,7 @@ import ( "testing" "time" + msmux "github.com/libp2p/go-libp2p/p2p/muxer/muxer-multistream" "github.com/libp2p/go-libp2p/p2p/muxer/yamux" csms "github.com/libp2p/go-libp2p/p2p/net/conn-security-multistream" "github.com/libp2p/go-libp2p/p2p/net/swarm" @@ -23,7 +24,6 @@ import ( "github.com/libp2p/go-libp2p-peerstore/pstoremem" tnet "github.com/libp2p/go-libp2p-testing/net" - msmux "github.com/libp2p/go-stream-muxer-multistream" ma "github.com/multiformats/go-multiaddr" "github.com/stretchr/testify/require" )