rust-libp2p/protocols/ping/CHANGELOG.md

98 lines
2.5 KiB
Markdown
Raw Normal View History

# 0.32.0 [unreleased]
- Use `instant` and `futures-timer` instead of `wasm-timer` (see [PR 2245]).
- Update dependencies.
[PR 2245]: https://github.com/libp2p/rust-libp2p/pull/2245
# 0.31.0 [2021-11-01]
- Make default features of `libp2p-core` optional.
[PR 2181](https://github.com/libp2p/rust-libp2p/pull/2181)
- Update dependencies.
- Don't close connection if ping protocol is unsupported by remote.
Previously, a failed protocol negotation for ping caused a force close of the connection.
As a result, all nodes in a network had to support ping.
To allow networks where some nodes don't support ping, we now emit
`PingFailure::Unsupported` once for every connection on which ping is not supported.
In case you want to stick with the old behavior, you need to close the connection
manually on `PingFailure::Unsupported`.
Fixes [#2109](https://github.com/libp2p/rust-libp2p/issues/2109). Also see [PR 2149].
[PR 2149]: https://github.com/libp2p/rust-libp2p/pull/2149/
- Rename types as per [discussion 2174].
`Ping` has been renamed to `Behaviour`.
The `Ping` prefix has been removed from various types like `PingEvent`.
Users should prefer importing the ping protocol as a module (`use libp2p::ping;`),
and refer to its types via `ping::`. For example: `ping::Behaviour` or `ping::Event`.
[discussion 2174]: https://github.com/libp2p/rust-libp2p/discussions/2174
2021-07-12 21:24:58 +02:00
# 0.30.0 [2021-07-12]
- Update dependencies.
2021-04-13 20:15:15 +02:00
# 0.29.0 [2021-04-13]
- Update `libp2p-swarm`.
2021-03-17 15:28:13 +01:00
# 0.28.0 [2021-03-17]
- Update `libp2p-swarm`.
# 0.27.0 [2021-01-12]
- Update dependencies.
# 0.26.0 [2020-12-17]
- Update `libp2p-swarm` and `libp2p-core`.
# 0.25.0 [2020-11-25]
- Update `libp2p-swarm` and `libp2p-core`.
# 0.24.0 [2020-11-09]
- Update dependencies.
2020-10-16 20:36:47 +02:00
# 0.23.0 [2020-10-16]
- Update `libp2p-swarm` and `libp2p-core`.
- Ensure the outbound ping is flushed before awaiting
the response. Otherwise the behaviour depends on
implementation details of the stream muxer used.
The current behaviour resulted in stalls with Mplex.
2020-09-09 12:20:25 +02:00
# 0.22.0 [2020-09-09]
- Update `libp2p-swarm` and `libp2p-core`.
# 0.21.0 [2020-08-18]
[core/swarm] Emit events for active connection close and fix `disconnect()`. (#1619) * Emit events for active connection close and fix `disconnect()`. The `Network` does currently not emit events for actively closed connections, e.g. via `EstablishedConnection::close` or `ConnectedPeer::disconnect()`. As a result, when actively closing connections, there will be `ConnectionEstablished` events emitted without eventually a matching `ConnectionClosed` event. This seems undesirable and has the consequence that the `Swarm::ban_peer_id` feature in `libp2p-swarm` does not result in appropriate calls to `NetworkBehaviour::inject_connection_closed` and `NetworkBehaviour::inject_disconnected`. Furthermore, the `disconnect()` functionality in `libp2p-core` is currently broken as it leaves the `Pool` in an inconsistent state. This commit does the following: 1. When connection background tasks are dropped (i.e. removed from the `Manager`), they always terminate immediately, without attempting an orderly close of the connection. 2. An orderly close is sent to the background task of a connection as a regular command. The background task emits a `Closed` event before terminating. 3. `Pool::disconnect()` removes all connection tasks for the affected peer from the `Manager`, i.e. without an orderly close, thereby also fixing the discovered state inconsistency due to not removing the corresponding entries in the `Pool` itself after removing them from the `Manager`. 4. A new test is added to `libp2p-swarm` that exercises the ban/unban functionality and places assertions on the number and order of calls to the `NetworkBehaviour`. In that context some new testing utilities have been added to `libp2p-swarm`. This addresses https://github.com/libp2p/rust-libp2p/issues/1584. * Update swarm/src/lib.rs Co-authored-by: Toralf Wittner <tw@dtex.org> * Incorporate some review feedback. * Adapt to changes in master. * More verbose panic messages. * Simplify There is no need for a `StartClose` future. * Fix doc links. * Further small cleanup. * Update CHANGELOGs and versions. Co-authored-by: Toralf Wittner <tw@dtex.org>
2020-08-04 11:30:09 +02:00
- Refactor the ping protocol for conformity by (re)using
a single substream for outbound pings, addressing
[#1601](https://github.com/libp2p/rust-libp2p/issues/1601).
[core/swarm] Emit events for active connection close and fix `disconnect()`. (#1619) * Emit events for active connection close and fix `disconnect()`. The `Network` does currently not emit events for actively closed connections, e.g. via `EstablishedConnection::close` or `ConnectedPeer::disconnect()`. As a result, when actively closing connections, there will be `ConnectionEstablished` events emitted without eventually a matching `ConnectionClosed` event. This seems undesirable and has the consequence that the `Swarm::ban_peer_id` feature in `libp2p-swarm` does not result in appropriate calls to `NetworkBehaviour::inject_connection_closed` and `NetworkBehaviour::inject_disconnected`. Furthermore, the `disconnect()` functionality in `libp2p-core` is currently broken as it leaves the `Pool` in an inconsistent state. This commit does the following: 1. When connection background tasks are dropped (i.e. removed from the `Manager`), they always terminate immediately, without attempting an orderly close of the connection. 2. An orderly close is sent to the background task of a connection as a regular command. The background task emits a `Closed` event before terminating. 3. `Pool::disconnect()` removes all connection tasks for the affected peer from the `Manager`, i.e. without an orderly close, thereby also fixing the discovered state inconsistency due to not removing the corresponding entries in the `Pool` itself after removing them from the `Manager`. 4. A new test is added to `libp2p-swarm` that exercises the ban/unban functionality and places assertions on the number and order of calls to the `NetworkBehaviour`. In that context some new testing utilities have been added to `libp2p-swarm`. This addresses https://github.com/libp2p/rust-libp2p/issues/1584. * Update swarm/src/lib.rs Co-authored-by: Toralf Wittner <tw@dtex.org> * Incorporate some review feedback. * Adapt to changes in master. * More verbose panic messages. * Simplify There is no need for a `StartClose` future. * Fix doc links. * Further small cleanup. * Update CHANGELOGs and versions. Co-authored-by: Toralf Wittner <tw@dtex.org>
2020-08-04 11:30:09 +02:00
- Bump `libp2p-core` and `libp2p-swarm` dependencies.
# 0.20.0 [2020-07-01]
- Updated dependencies.
2020-06-22 11:41:28 +02:00
# 0.19.3 [2020-06-22]
- Updated dependencies.
2020-06-22 11:41:28 +02:00
# 0.19.2 [2020-06-18]
- Close substream in inbound upgrade
[PR 1606](https://github.com/libp2p/rust-libp2p/pull/1606).