rust-libp2p: swarm: Remove `ConnectionHandler::Error`
Based on https://github.com/libp2p/rust-libp2p/discussions/3353#discussioncomment-4733941, I am opening this issue to track the work around removing ConnectionHandlerEvent::Close. Closing a connection is the only usage of ConnectionHandler::Error but we’ve agree that ConnectionHandlers themselves should not be allowed to close connections because they don’t fully own them and might disrupt other protocols.
- [x] https://github.com/libp2p/rust-libp2p/pull/3625
- [x] https://github.com/libp2p/rust-libp2p/pull/3913
- [x] https://github.com/libp2p/rust-libp2p/pull/3947
- [ ] https://github.com/libp2p/rust-libp2p/pull/4714
- [ ] https://github.com/libp2p/rust-libp2p/pull/4715
- [ ] https://github.com/libp2p/rust-libp2p/pull/4718
- [ ] https://github.com/libp2p/rust-libp2p/pull/4745
- [ ] https://github.com/libp2p/rust-libp2p/pull/4749
- [ ] https://github.com/libp2p/rust-libp2p/pull/4755
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 1
- Comments: 17 (17 by maintainers)
Commits related to this issue
- fix(gossipsub): gracefully disable handler on stream errors Previously, we closed the entire connection upon receiving too many upgrade errors. This is unnecessarily aggressive. For example, an upgra... — committed to libp2p/rust-libp2p by vnermolaev a year ago
- fix(gossipsub): gracefully disable handler on stream errors Previously, we closed the entire connection upon receiving too many upgrade errors. This is unnecessarily aggressive. For example, an upgra... — committed to tcoratger/rust-libp2p by vnermolaev a year ago
- feat(request-response): don't close connection on stream errors Related: #3591. Pull-Request: #3913. — committed to libp2p/rust-libp2p by thomaseizinger a year ago
- feat(ping): don't close connections upon failures Previously, the `libp2p-ping` module came with a policy to close a connection after X failed pings. This is only one of many possible policies on how... — committed to libp2p/rust-libp2p by thomaseizinger a year ago
- feat(swarm): don't close connection in `OneShotHandler` Related: #3591. Pull-Request: #4715. — committed to libp2p/rust-libp2p by thomaseizinger 8 months ago
- feat(relay): propagate errors to `Transport::{listen_on,dial}` To make a reservation with a relay, a user calls `Swarm::listen_on` with an address of the relay, suffixed with a `/p2pcircuit` protoco... — committed to libp2p/rust-libp2p by thomaseizinger 8 months ago
- refactor(dcutr): simplify public API We refactor the `libp2p-dcutr` API to only emit a single event: whether the hole-punch was successful or not. All other intermediate events are removed. Hole-punc... — committed to libp2p/rust-libp2p by thomaseizinger 8 months ago
- feat(relay): don't close connections upon errors in relay server To remove the usages of `ConnectionHandlerEvent::Close` from the relay-server, we unify what used to be called `CircuitFailedReason` a... — committed to libp2p/rust-libp2p by thomaseizinger 8 months ago
- feat(request-response): don't close connection on stream errors Related: #3591. Pull-Request: #3913. — committed to alindima/rust-libp2p by thomaseizinger a year ago
- feat(swarm): don't have `ConnectionHandler`s close connections This PR implements the long-awaited design of disallowing `ConnectionHandler`s to close entire connections. Instead, users should close ... — committed to maschad/rust-libp2p by thomaseizinger 8 months ago
Agreed.