diff --git a/misc/multistream-select/CHANGELOG.md b/misc/multistream-select/CHANGELOG.md index 97fdc2e7..8e054427 100644 --- a/misc/multistream-select/CHANGELOG.md +++ b/misc/multistream-select/CHANGELOG.md @@ -1,3 +1,9 @@ +# 0.8.4 [2020-10-20] + +- Temporarily disable the internal selection of "parallel" protocol + negotiation for the dialer to later change the response format of the "ls" + message for spec compliance. See https://github.com/libp2p/rust-libp2p/issues/1795. + # 0.8.3 [2020-10-16] - Fix a regression resulting in a panic with the `V1Lazy` protocol. diff --git a/misc/multistream-select/Cargo.toml b/misc/multistream-select/Cargo.toml index c4564245..67efeade 100644 --- a/misc/multistream-select/Cargo.toml +++ b/misc/multistream-select/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "multistream-select" description = "Multistream-select negotiation protocol for libp2p" -version = "0.8.3" +version = "0.8.4" authors = ["Parity Technologies "] license = "MIT" repository = "https://github.com/libp2p/rust-libp2p" diff --git a/misc/multistream-select/src/dialer_select.rs b/misc/multistream-select/src/dialer_select.rs index efbdc105..18509e94 100644 --- a/misc/multistream-select/src/dialer_select.rs +++ b/misc/multistream-select/src/dialer_select.rs @@ -56,12 +56,17 @@ where I::Item: AsRef<[u8]> { let iter = protocols.into_iter(); + // NOTE: Temporarily disabled "parallel" negotiation in order to correct the + // "ls" responses towards interoperability and (new) spec compliance. + // See https://github.com/libp2p/rust-libp2p/issues/1795. + Either::Left(dialer_select_proto_serial(inner, iter, version)) + // We choose between the "serial" and "parallel" strategies based on the number of protocols. - if iter.size_hint().1.map(|n| n <= 3).unwrap_or(false) { - Either::Left(dialer_select_proto_serial(inner, iter, version)) - } else { - Either::Right(dialer_select_proto_parallel(inner, iter, version)) - } + // if iter.size_hint().1.map(|n| n <= 3).unwrap_or(false) { + // Either::Left(dialer_select_proto_serial(inner, iter, version)) + // } else { + // Either::Right(dialer_select_proto_parallel(inner, iter, version)) + // } } /// Future, returned by `dialer_select_proto`, which selects a protocol and dialer @@ -76,7 +81,7 @@ pub type DialerSelectFuture = Either, DialerSelectPa /// trying the given list of supported protocols one-by-one. /// /// This strategy is preferable if the dialer only supports a few protocols. -pub fn dialer_select_proto_serial( +pub(crate) fn dialer_select_proto_serial( inner: R, protocols: I, version: Version @@ -105,7 +110,7 @@ where /// /// This strategy may be beneficial if the dialer supports many protocols /// and it is unclear whether the remote supports one of the first few. -pub fn dialer_select_proto_parallel( +pub(crate) fn dialer_select_proto_parallel( inner: R, protocols: I, version: Version