swarm/src/handler: Document responsibility limiting inbound streams (#2752)

Document that the `ConnectionHandler` implementation has to enforce a limit on
the number of inbound substreams.
This commit is contained in:
Max Inden 2022-07-14 06:15:19 +02:00 committed by GitHub
parent d0da3a0973
commit 7c8a97739f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -116,6 +116,12 @@ pub trait ConnectionHandler: Send + 'static {
fn listen_protocol(&self) -> SubstreamProtocol<Self::InboundProtocol, Self::InboundOpenInfo>;
/// Injects the output of a successful upgrade on a new inbound substream.
///
/// Note that it is up to the [`ConnectionHandler`] implementation to manage the lifetime of the
/// negotiated inbound substreams. E.g. the implementation has to enforce a limit on the number
/// of simultaneously open negotiated inbound substreams. In other words it is up to the
/// [`ConnectionHandler`] implementation to stop a malicious remote node to open and keep alive
/// an excessive amount of inbound substreams.
fn inject_fully_negotiated_inbound(
&mut self,
protocol: <Self::InboundProtocol as InboundUpgradeSend>::Output,