More precise errors in the nodes module #765
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
type Error;
associated type toNodeHandler
. For now it is always set toio::Error
for theNodeHandlerWrapper
, otherwise this PR would be even bigger. A further PR should make it generic as well.handled_node_task
andcollection.rs
, we now properly separate between a reach error (happens when dialing a node or negotiating secio/mplex/yamux) and a node error (happens after we are connected).handled_node
andraw_swarm::NodeError
, we distinguish between an error generated by the muxer and an error generated by the node handler. Eventually theStreamMuxer
should also get anError
associated type.RawSwarmEvent::DialError
, we now return aRawSwarmReachError
which distinguishes between an error produced by the transport layer (including negotiating secio/mplex/yamux) and a mismatch in the peer ID.