Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ libp2p-mplex = { version = "0.41.0", path = "muxers/mplex" }
libp2p-muxer-test-harness = { path = "muxers/test-harness" }
libp2p-noise = { version = "0.44.0", path = "transports/noise" }
libp2p-perf = { version = "0.3.1", path = "protocols/perf" }
libp2p-ping = { version = "0.44.1", path = "protocols/ping" }
libp2p-ping = { version = "0.44.2", path = "protocols/ping" }
libp2p-plaintext = { version = "0.41.0", path = "transports/plaintext" }
libp2p-pnet = { version = "0.24.0", path = "transports/pnet" }
libp2p-quic = { version = "0.10.3", path = "transports/quic" }
Expand Down
13 changes: 9 additions & 4 deletions protocols/ping/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
## 0.44.1 - unreleased
## 0.44.2

- Use `web-time` instead of `instant`.
See [PR 5347](https://github.com/libp2p/rust-libp2p/pull/5347).

- Fixes panic in WASM caused by retrying on dail errors.
See [PR 5447](https://github.com/libp2p/rust-libp2p/pull/5447).

## 0.44.1

- Impose `Sync` on `ping::Failure::Other`.
`ping::Event` can now be shared between threads.
See [PR 5250]

- Use `web-time` instead of `instant`.
See [PR 5347](https://github.com/libp2p/rust-libp2p/pull/5347).

[PR 5250]: https://github.com/libp2p/rust-libp2p/pull/5250

## 0.44.0
Expand Down
2 changes: 1 addition & 1 deletion protocols/ping/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "libp2p-ping"
edition = "2021"
rust-version = { workspace = true }
description = "Ping protocol for libp2p"
version = "0.44.1"
version = "0.44.2"
authors = ["Parity Technologies <[email protected]>"]
license = "MIT"
repository = "https://github.com/libp2p/rust-libp2p"
Expand Down
12 changes: 12 additions & 0 deletions protocols/ping/src/handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,18 @@ impl Handler {
) {
self.outbound = None; // Request a new substream on the next `poll`.

// Timer is already polled and expired before substream request is initiated
// and will be polled again later on in our `poll` because we reset `self.outbound`.
//
// `futures-timer` allows an expired timer to be polled again and returns
// immidietly a `Poll::Ready`. However in its WASM implementation there is
// a bug that causes the expired timer to panic.
//
// This is a workaround until a proper fix is merged and released.
//
// See async-rs/futures-timer#74 and libp2p/rust-libp2p#5447 for more info.
self.interval.reset(Duration::new(0, 0));

let error = match error {
StreamUpgradeError::NegotiationFailed => {
debug_assert_eq!(self.state, State::Active);
Expand Down