fix: prevent duplicate connections to multiaddr #2734
+97
−1
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.
Title
fix: prevent duplicate connections to multiaddr
Description
After opening a new connection, check if there is an existing connection
to the same peer. If the existing connection is not limited or the new
connection is also limit, return the existing connection.
This will prevent multiple connections to the same peer in cases where
the multiaddr being dialed does not contain a peer id.
Notes & open questions
Closes #2714
There is a small change from what was requested in the issue. An existing limited connection will be returned if the new connection is also limited.
Should
conn.close()
be awaited before returning the existing connection?Where should a test for this be added?
Change checklist