internal/http3: implement server read and write deadlines

The HTTP/3 server now enforces the net/http server's ReadHeaderTimeout,
ReadTimeout, and WriteTimeout that is registered via RegisterServer.

Also clean up logic related to stream closure and reset in the server
implementation. Instead, just return the appropriate error and let
genericConn.handleStreamError deal with the stream closure and reset.

IdleTimeout is not yet implemented and will be added separately.

For golang/go#70914

Change-Id: Ie7aaebb673ad6a6386c6cbce273446466a6a6964
Reviewed-on: https://go-review.googlesource.com/c/net/+/798060
Reviewed-by: Nicholas Husin <husin@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Auto-Submit: Nicholas Husin <husin@google.com>
2 files changed
tree: 0441615c9d9118fd8102ec5799f1ab4b3654aa9e
  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.