facebook / mvfst

An implementation of the QUIC transport protocol.
MIT License
1.5k stars 242 forks source link

echo client: use QUIC v1 (RFC 9000) #328

Open marten-seemann opened 10 months ago

marten-seemann commented 10 months ago

... and not an internal Facebook QUIC version. Makes testing against other QUIC stacks either. I haven't figured out how to set the ALPN though.

facebook-github-bot commented 10 months ago

Hi @marten-seemann!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

marten-seemann commented 10 months ago

I signed the CLA, but not sure how to trigger a rerun of the CLA checker.

jbeshay commented 10 months ago

Thanks @marten-seemann. The CLA signed label is there now so the CLA checker must have run later.

For the QUIC version, It's probably better to include QUIC_V1 and MVFST to the supported versions so it can still work with an MVFST-only server.

For the ALPN, you can set it in the FizzClient context (line 103). Something like this should do:

      auto ctx = std::make_shared<fizz::client::FizzClientContext>();
      ctx->setSupportedAlpns({"echo"});
      auto fizzClientContext =
          FizzClientQuicHandshakeContext::Builder()
              .setCertificateVerifier(test::createTestCertificateVerifier())
              .setFizzClientContext(ctx)
              .build();
marten-seemann commented 10 months ago

@jbeshay Thank you! I'll fix this PR once I'm able to build mvfst locally again. Builds seem to be broken on CI as well, so I assume there's something broken in the build here, independent of this PR.

lnicco commented 10 months ago

which build error are you experiencing?

The github action failure seems to be due to a failure to download zlib (looks like the endpoint does not like robots)

jbeshay commented 1 week ago

@marten-seemann are you still interested in updating this PR?