Doridian / wsvpn

VPN over WebSocket and WebTransport
BSD 3-Clause "New" or "Revised" License
120 stars 12 forks source link

Update module github.com/quic-go/quic-go to v0.44.0 #529

Closed renovate[bot] closed 1 month ago

renovate[bot] commented 1 month ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/quic-go/quic-go v0.43.1 -> v0.44.0 age adoption passing confidence

Release Notes

quic-go/quic-go (github.com/quic-go/quic-go) ### [`v0.44.0`](https://togithub.com/quic-go/quic-go/releases/tag/v0.44.0) [Compare Source](https://togithub.com/quic-go/quic-go/compare/v0.43.1...v0.44.0) v0.44 contains a lot of fixes related to HTTP Datagrams, new logic to determine (and configure) the QUIC packet size, as well as a significant speedup of the various parsers. #### HTTP Datagram-related Fixes The last release introduced support for HTTP Datagrams (RFC 9297). This release resolves a number of problems we discovered in the initial implementation: - reject sending of DATAGRAM frames that exceed the currently available MTU ([https://github.com/quic-go/quic-go/pull/4497](https://togithub.com/quic-go/quic-go/pull/4497)) - http3: deadline errors are now ignored in stream state tracking ([https://github.com/quic-go/quic-go/pull/4495](https://togithub.com/quic-go/quic-go/pull/4495)) - http3: refuse to send HTTP datagrams associated with a closed stream ([https://github.com/quic-go/quic-go/pull/4488](https://togithub.com/quic-go/quic-go/pull/4488)) - http3: use the send stream context for tracking the stream state ([https://github.com/quic-go/quic-go/pull/4489](https://togithub.com/quic-go/quic-go/pull/4489)) - http3: fix memory leak caused by stream state tracking ([https://github.com/quic-go/quic-go/pull/4523](https://togithub.com/quic-go/quic-go/pull/4523)). Thanks to [@​GeorgeMac](https://togithub.com/GeorgeMac) for debugging and fixing! #### QUIC Packet Size and Path MTU Discovery - The initial packet size is now configurable via `quic.Config`. Most users should not use this config option, but instead rely on Path MTU discovery ([https://github.com/quic-go/quic-go/pull/4503](https://togithub.com/quic-go/quic-go/pull/4503)) - The client's initial packet size was increased to 1280 bytes ([https://github.com/quic-go/quic-go/pull/4500](https://togithub.com/quic-go/quic-go/pull/4500)) - Respect the client's `max_udp_payload_size` transport parameter ([https://github.com/quic-go/quic-go/pull/4514](https://togithub.com/quic-go/quic-go/pull/4514)) - qlog: add support for the `mtu_updated` event ([https://github.com/quic-go/quic-go/pull/4517](https://togithub.com/quic-go/quic-go/pull/4517)) #### Speeding up Parsing the variable-length Integers The QUIC varint parser was rewritten to act on byte slices instead of a `bytes.Reader`. This is significantly faster ([https://github.com/quic-go/quic-go/pull/4475](https://togithub.com/quic-go/quic-go/pull/4475)). The new parser is now used for parsing QUIC frames ([https://github.com/quic-go/quic-go/pull/4484](https://togithub.com/quic-go/quic-go/pull/4484)), the QUIC packet header ([https://github.com/quic-go/quic-go/pull/4481](https://togithub.com/quic-go/quic-go/pull/4481)), the QUIC transport parameters ([https://github.com/quic-go/quic-go/pull/4483](https://togithub.com/quic-go/quic-go/pull/4483)) and HTTP datagrams ([https://github.com/quic-go/quic-go/pull/4478](https://togithub.com/quic-go/quic-go/pull/4478)). #### Other Notable Changes - http3: `ParseCapsule` now returns an `io.EOF` (and not an `io.UnexpectedEOF`) if the underlying reader returns an `io.EOF` on the first byte ([https://github.com/quic-go/quic-go/pull/4476](https://togithub.com/quic-go/quic-go/pull/4476)) - http3: `ListenAndServe` was renamed to `ListenAndServeTLS` ([https://github.com/quic-go/quic-go/pull/4522](https://togithub.com/quic-go/quic-go/pull/4522)). Thanks to [@​ETZhangSX](https://togithub.com/ETZhangSX)! - http3: reserved frame types now cause a connection error, as required by the RFC ([https://github.com/quic-go/quic-go/pull/4467](https://togithub.com/quic-go/quic-go/pull/4467)) - http3: pass the correct `Connection` to the `ConnContext` callback ([https://github.com/quic-go/quic-go/pull/4480](https://togithub.com/quic-go/quic-go/pull/4480)). Thanks to [@​rthellend](https://togithub.com/rthellend)! #### quic-go needs your support! Is your project / company relying on quic-go? Please consider [funding the project](https://togithub.com/sponsors/marten-seemann). Any support is highly appreciated! #### What's Changed - build(deps): bump golangci/golangci-lint-action from 4 to 5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/quic-go/quic-go/pull/4472](https://togithub.com/quic-go/quic-go/pull/4472) - http3: return an io.EOF when parsing a capsule fails on the first byte by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4476](https://togithub.com/quic-go/quic-go/pull/4476) - quicvarint: add a function to parse a varint from a byte slice by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4475](https://togithub.com/quic-go/quic-go/pull/4475) - http3: avoid allocation when parsing the datagram's quarter stream ID by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4478](https://togithub.com/quic-go/quic-go/pull/4478) - http3: Pass original Conn to ConnContext by [@​rthellend](https://togithub.com/rthellend) in [https://github.com/quic-go/quic-go/pull/4480](https://togithub.com/quic-go/quic-go/pull/4480) - http3: reject reserved frame types by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4467](https://togithub.com/quic-go/quic-go/pull/4467) - fix capture of loop variable in connection probe packet tests by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4486](https://togithub.com/quic-go/quic-go/pull/4486) - http3: refuse to send datagrams associated with a closed stream by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4488](https://togithub.com/quic-go/quic-go/pull/4488) - http3: use the stream context to detect when the send side is closed by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4489](https://togithub.com/quic-go/quic-go/pull/4489) - wire: use quicvarint.Parse to when parsing transport parameters by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4482](https://togithub.com/quic-go/quic-go/pull/4482) - wire: use quicvarint.Parse when parsing frames by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4484](https://togithub.com/quic-go/quic-go/pull/4484) - wire: refactor header parsing to use quicvarint.Parse by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4481](https://togithub.com/quic-go/quic-go/pull/4481) - wire: reduce allocations when parsing transport parameters by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4483](https://togithub.com/quic-go/quic-go/pull/4483) - fix incorrect reuse of UDP connection in handshake benchmark by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4491](https://togithub.com/quic-go/quic-go/pull/4491) - http3: fix race condition when creating state tracking stream by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4493](https://togithub.com/quic-go/quic-go/pull/4493) - ci: run benchmarks by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4492](https://togithub.com/quic-go/quic-go/pull/4492) - http3: ignore deadline errors when tracking QUIC stream states by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4495](https://togithub.com/quic-go/quic-go/pull/4495) - ci: update golangci-lint-action to v6 and golangci-lint to v1.58.0 by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4494](https://togithub.com/quic-go/quic-go/pull/4494) - ci: disable exhaustive linter for test files by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4499](https://togithub.com/quic-go/quic-go/pull/4499) - add an integration test for DPLPMTUD by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4498](https://togithub.com/quic-go/quic-go/pull/4498) - reject sending of DATAGRAM frames that exceed the current MTU by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4497](https://togithub.com/quic-go/quic-go/pull/4497) - wire: write configured value of max_udp_payload_size transport parameter by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4501](https://togithub.com/quic-go/quic-go/pull/4501) - increase initial packet size to 1280 bytes (for both IPv4 and IPv6) by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4500](https://togithub.com/quic-go/quic-go/pull/4500) - make the initial packet size configurable by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4503](https://togithub.com/quic-go/quic-go/pull/4503) - update all golang.org/x dependencies by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4506](https://togithub.com/quic-go/quic-go/pull/4506) - initialize the MTU discoverer when processing the transport parameters by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4514](https://togithub.com/quic-go/quic-go/pull/4514) - retry the MTU integration test up to 3 times by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4519](https://togithub.com/quic-go/quic-go/pull/4519) - logging / qlog: add support for DPLPMTUD by [@​marten-seemann](https://togithub.com/marten-seemann) in [https://github.com/quic-go/quic-go/pull/4517](https://togithub.com/quic-go/quic-go/pull/4517) - http3: rename ListenAndServe to ListenAndServeTLS by [@​ETZhangSX](https://togithub.com/ETZhangSX) in [https://github.com/quic-go/quic-go/pull/4522](https://togithub.com/quic-go/quic-go/pull/4522) - fix(http3): handle streamStateSendAndReceiveClosed in onStreamStateChange by [@​GeorgeMac](https://togithub.com/GeorgeMac) in [https://github.com/quic-go/quic-go/pull/4523](https://togithub.com/quic-go/quic-go/pull/4523) #### New Contributors - [@​ETZhangSX](https://togithub.com/ETZhangSX) made their first contribution in [https://github.com/quic-go/quic-go/pull/4522](https://togithub.com/quic-go/quic-go/pull/4522) **Full Changelog**: https://github.com/quic-go/quic-go/compare/v0.43.0...v0.44.0

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.