Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build(deps): bump github.com/quic-go/quic-go from 0.42.0 to 0.43.0 (#…
…9522) Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) from 0.42.0 to 0.43.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/quic-go/quic-go/releases">github.com/quic-go/quic-go's releases</a>.</em></p> <blockquote> <h2>v0.43.0</h2> <h2><em>quic-go.net</em>: Launching a new Documentation Site</h2> <p>With this release, we're launching a new documentation site for the quic-go projects (quic-go itself, HTTP/3, webtransport-go, and soon, masque-go): <a href="https://quic-go.net">quic-go.net</a>.</p> <p>The documentation site aims to explain QUIC concepts and how they are made accessible using quic-go's API. This site replaces the wiki, and the ever-growing README files.</p> <p>A lot of work has gone into the documentation already, but we're by no means done yet. The entire source is public in <a href="https://github.com/quic-go/docs/">https://github.com/quic-go/docs/</a>, and we're happy about community contributions.</p> <h2>HTTP Datagrams (RFC 9297)</h2> <p>This release adds support for HTTP Datagrams (<a href="https://datatracker.ietf.org/doc/html/rfc9297">RFC 9297</a>), both on the client and on the server side (<a href="https://redirect.github.com/quic-go/quic-go/issues/4452">#4452</a>). HTTP Datagrams are used in WebTransport in CONNECT-UDP (<a href="https://datatracker.ietf.org/doc/html/rfc9298">RFC 9298</a>), among others.</p> <p>The new API for HTTP Datagrams is described on the new documentation page: <a href="https://quic-go.net/docs/http3/datagrams/">HTTP Datagrams</a>. The integration of HTTP Datagram support necessitated a comprehensive refactor of the HTTP/3 package, resulting in several breaking API changes listed below.</p> <h2>Breaking Changes</h2> <ul> <li>quicvarint: functions now return an <code>int</code> instead the internal <code>protocol.ByteCount</code> (<a href="https://redirect.github.com/quic-go/quic-go/issues/4365">#4365</a>)</li> <li>http3: <code>Server.SetQuicHeaders</code> was renamed to <code>SetQUICHeaders</code> (<a href="https://redirect.github.com/quic-go/quic-go/issues/4377">#4377</a>)</li> <li>http3: <code>Server.QuicConfig</code> was renamed to <code>QUICConfig</code> (<a href="https://redirect.github.com/quic-go/quic-go/issues/4384">#4384</a>)</li> <li>http3: <code>RoundTripper.QuicConfig</code> was renamed to <code>QUICConfig</code> (<a href="https://redirect.github.com/quic-go/quic-go/issues/4385">#4385</a>)</li> <li>http3: <code>RoundTripOpt.CheckSettings</code> was removed (<a href="https://redirect.github.com/quic-go/quic-go/issues/4416">#4416</a>). Use the new<code>SingleDestinationRoundTripper</code> API instead.</li> <li>http3: the <code>HTTPStreamer</code> interface is now implemented by the <code>http.ResponseWriter</code> (and not the <code>http.Request.Body</code>) (<a href="https://redirect.github.com/quic-go/quic-go/issues/4469">#4469</a>)</li> <li>include the maximum payload size in the <code>DatagramTooLargeError</code> (<a href="https://redirect.github.com/quic-go/quic-go/issues/4470">#4470</a>)</li> </ul> <h2>Other Notable Changes</h2> <ul> <li>GSO and ECN is disabled on kernel versions older than 5 (<a href="https://redirect.github.com/quic-go/quic-go/issues/4456">#4456</a>)</li> <li>http3: logging can be controlled using an <code>slog.Logger</code> (<a href="https://redirect.github.com/quic-go/quic-go/issues/4449">#4449</a>)</li> <li>http3: HEAD requests can now be sent in 0-RTT (<a href="https://redirect.github.com/quic-go/quic-go/issues/4378">#4378</a>)</li> <li>http3: duplicate QPACK encoder and decoder streams are not rejected as required by the RFC (<a href="https://redirect.github.com/quic-go/quic-go/issues/4388">#4388</a>)</li> <li>http3: Extended CONNECT are blocked until the server's SETTINGS are received, as required by the RFC (<a href="https://redirect.github.com/quic-go/quic-go/issues/4450">#4450</a>)</li> <li>http3: HTTP/3 client connections aren't removed if <code>RoundTrip</code> errors due to a cancelled context (<a href="https://redirect.github.com/quic-go/quic-go/issues/4448">#4448</a>). Thanks to <a href="https://github.com/GeorgeMac"><code>@GeorgeMac</code></a>!</li> <li>http3: sniff Content-Type when flushing the ResponseWriter (<a href="https://redirect.github.com/quic-go/quic-go/issues/4412">#4412</a>). Thanks to <a href="https://github.com/WeidiDeng"><code>@WeidiDeng</code></a>!</li> <li>The <code>Context</code> exposed on the <code>quic.Stream</code> is now derived from the connection's context (<a href="https://redirect.github.com/quic-go/quic-go/issues/4414">#4414</a>)</li> <li>The UDP send and receive buffer size was increased to 7 MiB (<a href="https://redirect.github.com/quic-go/quic-go/issues/4455">#4455</a>). Thanks to <a href="https://github.com/bt90"><code>@bt90</code></a>!</li> </ul> <h2>Clarifications on the QUIC Stream State Machine</h2> <h3>Calling CancelWrite after Close</h3> <p>After a long and fruitful discussion (<a href="https://redirect.github.com/quic-go/quic-go/issues/4404">#4404</a>), we decided to clarify that calling <code>CancelWrite</code> after <code>Close</code> on a <code>SendStream</code> (or a bidirectional stream) should cause a state transition from the "Data Sent" to the "Reset Sent" state, as described in <a href="https://datatracker.ietf.org/doc/html/rfc9000#section-3.1">section 3.1 of RFC 9000</a>. This matches the current behavior of quic-go, however, it didn't match the API documentation (fixed in <a href="https://redirect.github.com/quic-go/quic-go/issues/4419">#4419</a>).</p> <p>This means that stream data will not be delivered reliably if <code>CancelWrite</code> is called, and that this applies even if <code>Close</code> was called before.</p> <h3>Garbage Collection of Streams</h3> <p>This release also changes the way streams are garbage-collected (and the peer is granted additional limit to open a new stream), once they're not needed anymore, in a subtle way:</p> <ul> <li>for the send direction of streams: <a href="https://redirect.github.com/quic-go/quic-go/issues/4445">#4445</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/quic-go/quic-go/commit/93c4785521c0622e7c4e04d681404f1c802e18c4"><code>93c4785</code></a> http3: sniff Content-Type when flushing the ResponseWriter (<a href="https://redirect.github.com/quic-go/quic-go/issues/4412">#4412</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/c0250ce82459ebdc60cc95c39dffed7ee0c0ec6b"><code>c0250ce</code></a> include the maximum payload size in the DatagramTooLargeError (<a href="https://redirect.github.com/quic-go/quic-go/issues/4470">#4470</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/34f4d1443f97c3b09e34023cbb912a8a803829a6"><code>34f4d14</code></a> http3: implement on the HTTPStreamer on the ResponseWriter, flush header (<a href="https://redirect.github.com/quic-go/quic-go/issues/4469">#4469</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/083ceb42f29c7d25d86e221e5a7a22eb6af1c006"><code>083ceb4</code></a> http3: rename Settings.EnableDatagram to EnableDatagrams (<a href="https://redirect.github.com/quic-go/quic-go/issues/4466">#4466</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/e1e5b6294d2cca73f0664f879889780cfa2ae51d"><code>e1e5b62</code></a> README: link to the new documentation site (<a href="https://redirect.github.com/quic-go/quic-go/issues/4464">#4464</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/2a37c531438f0d1512f39be9c768c363389be1ae"><code>2a37c53</code></a> http3: add support for HTTP Datagrams (RFC 9297) (<a href="https://redirect.github.com/quic-go/quic-go/issues/4452">#4452</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/11b11594b249517098aeabfebb3797e85719dd25"><code>11b1159</code></a> http3: fix race condition in client unit test (<a href="https://redirect.github.com/quic-go/quic-go/issues/4463">#4463</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/4b87539b1efd2ffd05996fb2b9a7519a9cdb9cd2"><code>4b87539</code></a> delay completion of the receive stream until the reset error was read (<a href="https://redirect.github.com/quic-go/quic-go/issues/4460">#4460</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/bff131e546ad5861fa1ae77766776d08bec9f3bc"><code>bff131e</code></a> delay completion of the send stream until the reset error was delivered (<a href="https://redirect.github.com/quic-go/quic-go/issues/4445">#4445</a>)</li> <li><a href="https://github.com/quic-go/quic-go/commit/12aa63824c7f91d7925bfc0bdb78ae0ad942b3bf"><code>12aa638</code></a> disable GSO and ECN on kernels older than version 5 (<a href="https://redirect.github.com/quic-go/quic-go/issues/4456">#4456</a>)</li> <li>Additional commits viewable in <a href="https://github.com/quic-go/quic-go/compare/v0.42.0...v0.43.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/quic-go/quic-go&package-manager=go_modules&previous-version=0.42.0&new-version=0.43.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 <dependency name> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Loading branch information