Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

transport.Listener,quic: Support multiple QUIC versions with the same Listener. Only return a single multiaddr per listener. #1923

Merged
merged 5 commits into from
Dec 1, 2022

Conversation

MarcoPolo
Copy link
Collaborator

Fixes #1904

Undoes part of the work in #1881. The QUIC transport now returns a virtual listener that only handles one QUIC version. If a user then listens on another QUIC version with the same multiaddr, we return another virtual listener that uses the same underlying listener but only advertises the other QUIC version.

This is ready for review, but I see some flakiness in the tests (maybe also from #1905 ) so I'll continue debugging that.

@MarcoPolo MarcoPolo changed the title Marco/1904 transport.Listener,quic: Support multiple QUIC versions with the same Listener. Only return a single multiaddr per listener. Nov 29, 2022
@MarcoPolo MarcoPolo mentioned this pull request Nov 29, 2022
34 tasks
p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
Copy link
Contributor

@marten-seemann marten-seemann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo the review comments here.

Can you add some tests similar to the one suggested in #1904 (comment) in p2p/test:

  • create a draft-29 listener and check that a draft-29 connection is accepted, but a v1 connection is closed
  • the other way round, for a v1 listener
  • create a draft-29 + v1 listener and check that both versions are accepted

p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
p2p/transport/quic/virtuallistener.go Outdated Show resolved Hide resolved
@MarcoPolo MarcoPolo merged commit 1c8eaab into master Dec 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

quic: QUIC listener doesn't respect the QUIC version of the listen address
2 participants