quic: connection lifetime management

Manage the closing and draining states.

A connection enters the closing state after sending a CONNECTION_CLOSE
frame to terminate the connection.

A connection enters the draining state after receiving a

Handle retransmission of CONNECTION_CLOSE frames when in the
closing state, and properly ignore received frames when in the
draining state.

RFC 9000, Section 10.2.

For golang/go#58547

Change-Id: I550ca544bffc4de7c5626f87a32c8902d5e2bc86
Reviewed-on: https://go-review.googlesource.com/c/net/+/528016
Auto-Submit: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
10 files changed
tree: a4a78d3529896ef47b4f4f114bd3938afd92670f
  1. bpf/
  2. context/
  3. dict/
  4. dns/
  5. html/
  6. http/
  7. http2/
  8. icmp/
  9. idna/
  10. internal/
  11. ipv4/
  12. ipv6/
  13. lif/
  14. nettest/
  15. netutil/
  16. proxy/
  17. publicsuffix/
  18. route/
  19. trace/
  20. webdav/
  21. websocket/
  22. xsrftoken/
  23. .gitattributes
  24. .gitignore
  25. codereview.cfg
  27. go.mod
  28. go.sum
  31. README.md

Go Networking

Go Reference

This repository holds supplementary Go networking libraries.


The easiest way to install is to run go get -u golang.org/x/net. You can also manually git clone the repository to $GOPATH/src/golang.org/x/net.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html. The main issue tracker for the net repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.