The http3.Server now has an IdleTimeout field: #4587. It works analogous to its HTTP/2 standard library equivalent: If no requests are received for the idle timeout period, the underlying QUIC connection is closed. Thanks to @rs for implementing.
The qlog file format was updated to the current qlog draft, which now uses JSON sequences (JSON-SEQ): #4609. qlog files now have the file extension .sqlog.
Breaking Changes
logging.VersionNumber was renamed to logging.Version (#4621), mirroring a similar renaming of quic.VersionNumber to quic.Version introduced in an earlier release
internal_error TLS alerts are now sent as QUIC CRYPTO_ERRORs (and not INTERNAL_ERRORs): #4601
Other Notable Changes
The stream logic for queueing stream-related control frames (RESET_STREAM, STOP_SENDING, MAX_STREAM_DATA, STREAM_DATA_BLOCKED) was completely rewritten. This makes quic-go more resilient to memory exhaustion attacks similar to those that we've seen earlier this year (1 and 2). It also enables further frame packing optimizations in the future.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/quic-go/quic-go from 0.45.1 to 0.46.0.
Release notes
Sourced from github.com/quic-go/quic-go's releases.
... (truncated)
Commits
0b033db
fix logging of short header connection IDs (#4626)46fc42d
only declare send stream completed when RESET_STREAM is acknowledged (#4613)7c471aa
http3: implement server idle timeout support (#4587)af9fa7a
queue stream-related control frames in the respective stream (#4610)d1f9af4
implement qlog JSONSEQ format, bump qlog version (#4609)f96923b
logging: rename VersionNumber to Version (#4621)931166b
remove unneeded cryptoStream interface (#4617)f5ceb73
handshake: generate CRYPTO_ERRORs for internal_error TLS alerts (#4601)a147bee
simplify frame queuing logic on 0-RTT rejection (#4607)86d5044
remove trivial mock implementation of the cryptoStream interface (#4620)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show