mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-07-31 00:41:59 +00:00
* 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>
31 lines
749 B
TOML
31 lines
749 B
TOML
[package]
|
|
name = "libp2p-plaintext"
|
|
edition = "2018"
|
|
description = "Plaintext encryption dummy protocol for libp2p"
|
|
version = "0.21.0"
|
|
authors = ["Parity Technologies <admin@parity.io>"]
|
|
license = "MIT"
|
|
repository = "https://github.com/libp2p/rust-libp2p"
|
|
keywords = ["peer-to-peer", "libp2p", "networking"]
|
|
categories = ["network-programming", "asynchronous"]
|
|
|
|
[dependencies]
|
|
bytes = "0.5"
|
|
futures = "0.3.1"
|
|
futures_codec = "0.4.0"
|
|
libp2p-core = { version = "0.21.0", path = "../../core" }
|
|
log = "0.4.8"
|
|
prost = "0.6.1"
|
|
rw-stream-sink = "0.2.0"
|
|
unsigned-varint = { version = "0.4.0", features = ["futures-codec"] }
|
|
void = "1.0.2"
|
|
|
|
[dev-dependencies]
|
|
env_logger = "0.7.1"
|
|
quickcheck = "0.9.0"
|
|
rand = "0.7"
|
|
|
|
[build-dependencies]
|
|
prost-build = "0.6"
|
|
|