internal/http3: add TransportOpts argument to RegisterTransport

RegisterTransport now takes in TransportOpts, which allows
RegisterTransport user to specify how an HTTP/3 transport should open a
QUIC endpoint, and what QUIC configuration to use.

Practically, this allows us to access the QUIC endpoint that an HTTP/3
transport is using. This allows us to synchronously close QUIC
connections while exercising our tests in std, to prevent goroutine
leaks after running tests.

For golang/go#78737
For golang/go#70914

Change-Id: I34f9756040044624ca9ea21654b249526a6a6964
Reviewed-on: https://go-review.googlesource.com/c/net/+/768000
Reviewed-by: Nicholas Husin <husin@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
3 files changed
tree: 0c9dc0479a93c00f6119470a93f8cbacc6fc927b
  1. bpf/
  2. context/
  3. dict/
  4. dns/
  5. html/
  6. http/
  7. http2/
  8. http3/
  9. icmp/
  10. idna/
  11. internal/
  12. ipv4/
  13. ipv6/
  14. lif/
  15. nettest/
  16. netutil/
  17. proxy/
  18. publicsuffix/
  19. quic/
  20. route/
  21. trace/
  22. webdav/
  23. websocket/
  24. xsrftoken/
  25. .gitattributes
  26. .gitignore
  27. codereview.cfg
  28. CONTRIBUTING.md
  29. go.mod
  30. go.sum
  31. LICENSE
  32. PATENTS
  33. README.md
README.md

Go Networking

Go Reference

This repository holds supplementary Go networking packages.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.

The git repository is https://go.googlesource.com/net.

The main issue tracker for the net repository is located at https://go.dev/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.