]>
git.feebdaed.xyz Git - 0xmirror/quic-go.git/log
Marten Seemann [Mon, 9 Jun 2025 11:48:36 +0000 (19:48 +0800)]
rename Conn receiver variable (#5215)
No functional change expected.
Marten Seemann [Mon, 9 Jun 2025 11:46:53 +0000 (19:46 +0800)]
http3: remove deprecated SingleDestinationRoundTripper type (#5217)
Marten Seemann [Mon, 9 Jun 2025 10:16:07 +0000 (18:16 +0800)]
http3: convert Connection interface to Conn struct (#5204)
Marten Seemann [Mon, 9 Jun 2025 09:51:46 +0000 (17:51 +0800)]
convert Connection interface to Conn struct (#5195)
Marten Seemann [Mon, 9 Jun 2025 09:14:58 +0000 (17:14 +0800)]
explictly expose all method on the Stream (#5214)
This hides the fact that a Stream is composed of a ReceiveStream and a
SendStream. This is an implementation detail and should not be exposed.
Marten Seemann [Mon, 9 Jun 2025 08:00:46 +0000 (16:00 +0800)]
handle stream-related frame in the streams map (#5212)
* handle stream-related frame in the streams map
* remove stream manager interface and mock
Marten Seemann [Mon, 9 Jun 2025 07:26:23 +0000 (15:26 +0800)]
remove connection flow controller mock (#5213)
No functional change expected.
Marten Seemann [Mon, 9 Jun 2025 07:09:30 +0000 (15:09 +0800)]
ci: enable Codecov test analysis (#5210)
* ci: enable Codecov test analysis
* ci: set package name for pre-built test binary
Marten Seemann [Sun, 8 Jun 2025 12:27:14 +0000 (20:27 +0800)]
simplify stream ID handling in the outgoing streams map (#5209)
No functional change expected.
Marten Seemann [Sun, 8 Jun 2025 10:25:36 +0000 (18:25 +0800)]
simplify stream ID handling in the incoming streams map (#5207)
* simplify stream ID handling in the incoming streams map
No functional change expected.
* protocol: move stream ID constant definition
Marten Seemann [Sun, 8 Jun 2025 03:19:46 +0000 (11:19 +0800)]
fix Goroutine leak on version negotiation race with context cancel (#5203)
Marten Seemann [Sat, 7 Jun 2025 05:21:53 +0000 (13:21 +0800)]
http3: simplify connection closing in the frame parser (#5196)
No functional change expected.
Marten Seemann [Sat, 7 Jun 2025 05:09:37 +0000 (13:09 +0800)]
ci: remove leftover check for Ginkgo imports (#5198)
Marten Seemann [Sat, 7 Jun 2025 04:49:49 +0000 (12:49 +0800)]
mocks: simplify mockgen command to generate MockCryptoSetup (#5197)
No functional change expected.
Marten Seemann [Mon, 2 Jun 2025 02:38:05 +0000 (10:38 +0800)]
ci: stop using Ginkgo test command (#5194)
* ci: stop using Ginkgo test command
* ci: remove integrationtest directory for unit tests
Marten Seemann [Sun, 1 Jun 2025 07:52:47 +0000 (15:52 +0800)]
congestion: migrate tests away from Ginkgo (#5193)
Marten Seemann [Sun, 1 Jun 2025 04:40:58 +0000 (12:40 +0800)]
ackhandler: migrate the ECN tests away from Ginkgo (#5084)
Marten Seemann [Sun, 1 Jun 2025 04:08:18 +0000 (12:08 +0800)]
convert ReceiveStream interface to a struct (#5173)
Marten Seemann [Sun, 1 Jun 2025 03:53:53 +0000 (11:53 +0800)]
convert SendStream to a struct (#5172)
Marten Seemann [Sun, 1 Jun 2025 03:40:05 +0000 (11:40 +0800)]
convert Stream interface to a struct (#5149)
Marten Seemann [Sat, 31 May 2025 08:40:20 +0000 (16:40 +0800)]
avoid triggering macOS dual-stack flakiness in HTTP/3 integration tests (#5187)
Unfortunately, there’s still no fix in sight for https://github.com/golang/go/issues/67226.
Marten Seemann [Sat, 31 May 2025 08:21:17 +0000 (16:21 +0800)]
http3: fix flaky TestConnControlStreamFailure (#5188)
Marten Seemann [Sat, 31 May 2025 07:58:20 +0000 (15:58 +0800)]
http3: fix flaky TestServerRequestHeaderTooLarge (#5186)
Marten Seemann [Sat, 31 May 2025 07:48:45 +0000 (15:48 +0800)]
http3: fix flaky TestClientResponseValidation (#5183)
Marten Seemann [Sat, 31 May 2025 05:52:56 +0000 (13:52 +0800)]
fix flaky TestTransportReplaceWithClosed (#5181)
Marten Seemann [Sat, 31 May 2025 05:33:57 +0000 (13:33 +0800)]
fix flaky TestGracefulShutdownPendingStreams (#5179)
Marten Seemann [Sat, 31 May 2025 05:31:20 +0000 (13:31 +0800)]
fix flaky TestHTTPRequestAfterGracefulShutdown (#5178)
Marten Seemann [Sat, 31 May 2025 04:02:30 +0000 (12:02 +0800)]
fix flaky TestConnectionPathValidation (#5175)
Marten Seemann [Sat, 31 May 2025 03:01:47 +0000 (11:01 +0800)]
fix flaky TestDatagramLoss (#5174)
Marten Seemann [Fri, 30 May 2025 06:10:16 +0000 (14:10 +0800)]
mockquic: remove package (#5171)
Marten Seemann [Fri, 30 May 2025 04:47:53 +0000 (12:47 +0800)]
http3: use actual QUIC connection in stream tests (#5170)
Marten Seemann [Fri, 30 May 2025 03:11:04 +0000 (11:11 +0800)]
http3: fix flaky TestClientStreamHijacking (#5169)
Marten Seemann [Fri, 30 May 2025 02:54:48 +0000 (10:54 +0800)]
http3: use actual QUIC connection in frames tests (#5165)
* http3: use actual QUIC connection in frames tests
* wait for handshake completion
Marten Seemann [Fri, 30 May 2025 02:47:17 +0000 (10:47 +0800)]
http3: use actual QUIC stream in state tracking stream tests (#5166)
* http3: use actual QUIC stream in state tracking stream tests
* avoid sleeps
Marten Seemann [Thu, 29 May 2025 13:10:30 +0000 (21:10 +0800)]
http3: use actual QUIC connection in transport tests (#5164)
Marten Seemann [Thu, 29 May 2025 12:42:36 +0000 (20:42 +0800)]
http3: use actual QUIC connection and stream in conn tests (#5163)
* http3: use actual QUIC connection and stream in conn tests
* add errror assertion
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Marten Seemann [Thu, 29 May 2025 11:06:36 +0000 (19:06 +0800)]
http3: use actual QUIC connection and stream in client tests (#5162)
Marten Seemann [Thu, 29 May 2025 09:06:09 +0000 (17:06 +0800)]
http3: use actual QUIC connection and stream in server tests (#5161)
Marten Seemann [Thu, 29 May 2025 04:23:05 +0000 (12:23 +0800)]
http3: simplify HTTP datagram handling (#5156)
Marten Seemann [Thu, 29 May 2025 03:41:40 +0000 (11:41 +0800)]
http3: convert Stream from an interface to a struct (#5154)
Marten Seemann [Thu, 29 May 2025 03:08:39 +0000 (11:08 +0800)]
http3: convert RequestStream from an interface to a struct (#5153)
Marten Seemann [Wed, 28 May 2025 07:43:42 +0000 (15:43 +0800)]
qlog: add support for reset_stream_at frame and transport parameter (#5160)
Marten Seemann [Wed, 28 May 2025 04:30:02 +0000 (12:30 +0800)]
wire: add support for the reset_stream_at transport parameter (#5158)
Marten Seemann [Wed, 28 May 2025 03:49:54 +0000 (11:49 +0800)]
implement parsing and writing of RESET_STREAM_AT frames (#5155)
* implement parsing and writing of RESET_STREAM_AT frames
* wire: add support for parsing RESET_STREAM_AT frames
Marten Seemann [Sat, 24 May 2025 03:07:17 +0000 (11:07 +0800)]
http3: migrate the state tracking stream tests away from Ginkgo (#5151)
Marten Seemann [Fri, 23 May 2025 14:07:00 +0000 (22:07 +0800)]
http3: migrate the stream tests away from Ginkgo (#5150)
Marten Seemann [Tue, 20 May 2025 06:43:33 +0000 (14:43 +0800)]
http3: fix off-by-one error when processing the GOAWAY stream ID (#5145)
Marten Seemann [Sun, 18 May 2025 05:33:43 +0000 (13:33 +0800)]
http3: implement client-side GOAWAY handling (#5143)
When receiving a GOAWAY frame, the client:
* immediately closes the connection if there are no active requests
* refuses to open streams with stream IDs larger than the stream ID in
the GOAWAY frame
* closes the connection once the stream count drops to zero
Marten Seemann [Sat, 17 May 2025 04:18:18 +0000 (12:18 +0800)]
http3: reset stream if the server sends too many 1xx responses (#5144)
Ameame [Fri, 16 May 2025 10:25:58 +0000 (18:25 +0800)]
store the RTT in the token, not in the session ticket (#5065)
* remove RTT from session ticket
* save RTT in token
* use mus as rtt unit in token
* move RTT from session state to token on client side
* Rename the rtt variables
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* Update internal/handshake/token_generator.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* Update token_generator.go
* Update connection.go
* Update token_generator.go
* correct slice access in fuzz.go
* rearrange connection constructor parameters
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
sukun [Fri, 16 May 2025 10:03:05 +0000 (15:33 +0530)]
pass ClientInfo to Transport.ConnContext, allow rejection of handshake (#5122)
* pass *ClientInfo to ConnContext
This allows users to set some state related to the client's remote
address in `ConnContext`.
This also refuses connection early if the returned context is cancelled.
* review comments
* better error assertion
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
Marten Seemann [Fri, 16 May 2025 03:22:13 +0000 (11:22 +0800)]
http3: only retry requests for which it is safe to do so (#5141)
* add an integration test for HTTP/3 redialing logic
* http3: only retry requests for which it is safe to do so
Marten Seemann [Sun, 11 May 2025 04:54:28 +0000 (12:54 +0800)]
fix flaky TestHandshakeCloseListener (#5140)
Marten Seemann [Sun, 11 May 2025 04:12:26 +0000 (12:12 +0800)]
http3: fix flaky TestClientRequestLengthLimit (#5137)
Marten Seemann [Sat, 10 May 2025 14:17:25 +0000 (22:17 +0800)]
http3: migrate the connection tests away from Ginkgo (#5133)
Marten Seemann [Sat, 10 May 2025 12:41:47 +0000 (20:41 +0800)]
http3: keep datagram receive loop running on datagram for unknown stream (#5136)
Marten Seemann [Sat, 10 May 2025 03:24:21 +0000 (11:24 +0800)]
http3: migrate the client tests away from Ginkgo (#5096)
* http3: migrate the client tests away from Ginkgo
* http3: add a client settings test
Marten Seemann [Fri, 9 May 2025 04:24:45 +0000 (12:24 +0800)]
use the slices package to simply QUIC version comparisons (#5130)
No functional change expected.
Marten Seemann [Thu, 8 May 2025 06:22:11 +0000 (14:22 +0800)]
http3: close QUIC listeners created by Server on graceful shutdown (#5101)
Marten Seemann [Thu, 8 May 2025 05:40:23 +0000 (13:40 +0800)]
http3: don't close QUIC listeners created by the application (#5129)
Marten Seemann [Tue, 6 May 2025 03:18:44 +0000 (11:18 +0800)]
never close accepted connections when the listener is closed (#5108)
Marten Seemann [Tue, 6 May 2025 03:05:59 +0000 (11:05 +0800)]
remove the changelog (#5074)
Marten Seemann [Tue, 6 May 2025 02:45:27 +0000 (10:45 +0800)]
fix race condition in tests when setting the key update interval (#5121)
* fix race conditions in tests when setting the key update interval
* remove test for running transports and handshakes
Marten Seemann [Tue, 6 May 2025 02:13:38 +0000 (10:13 +0800)]
remove stray assertion that handshakes are running from tests (#5123)
The RunHandshake method this function was basing its assertion on was
removed a long time ago.
Zxilly [Mon, 5 May 2025 15:12:03 +0000 (23:12 +0800)]
fix ECN control messages on big-endian architectures (#5105)
* fix: correct select low bits when dealing with ecn
* fix: revert action on ipv4
* chore: use uint8
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* fix: use binary to handle byte order
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
Marten Seemann [Mon, 5 May 2025 11:27:59 +0000 (19:27 +0800)]
ci: only apply the interop Docker build concurrency group for pushes (#5120)
There’s no risk that the uploaded Docker image gets
overwritten for pull requests, since pull requests don’t
upload the image.
Marten Seemann [Mon, 5 May 2025 11:04:10 +0000 (19:04 +0800)]
split SNI and ECH extensions in the ClientHello (#5107)
* create a new type for crypto stream used for Initial data
This currently the exact same implementation as the other
streams, thus no functional change is expected.
* handshake: implement a function to find the SNI and the ECH extension
* move the SNI parsing logic to the quic package
* implement splitting logic
* generalize cutting logic
* introduce QUIC_GO_DISABLE_CLIENTHELLO_SCRAMBLING
* improve testing
Marten Seemann [Mon, 5 May 2025 10:56:10 +0000 (18:56 +0800)]
ci: remove stray GITREF env from Docker interop workflow (#5119)
Marten Seemann [Mon, 5 May 2025 03:05:17 +0000 (11:05 +0800)]
move connection tracking into the Transport (#5113)
dependabot[bot] [Mon, 5 May 2025 02:45:38 +0000 (04:45 +0200)]
ci: bump golangci-lint-action to v8 and golangci-lint to v2.1.6 (#5118)
* build(deps): bump golangci/golangci-lint-action from 7 to 8
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 7 to 8.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v7...v8)
---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* bump golangci-lint to v2.1.6
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
Marten Seemann [Mon, 5 May 2025 02:28:01 +0000 (10:28 +0800)]
http3: reset request streams accepted after graceful shutdown (#5116)
* http3: reset request streams accepted after graceful shutdown
The server needs to let the client know that these streams
are not getting processed, using the H3_REQUEST_REJECTED
error code.
* add an integration test for graceful shutdown stream cancellations
Marten Seemann [Sun, 4 May 2025 10:51:39 +0000 (18:51 +0800)]
delete closed connections after 3 PTOs (#5117)
In most cases, this should be earlier than the current
timeout value of 5s.
Marten Seemann [Sun, 4 May 2025 05:07:44 +0000 (13:07 +0800)]
ci: also build the interop image on pull requests, but skip pushing (#5115)
* ci: also build the interop image on pull requests, but skip pushing
* use checked out code for interop Docker build
Marten Seemann [Sun, 4 May 2025 04:21:03 +0000 (12:21 +0800)]
http3: send GOAWAY frame in a new Goroutine (#5114)
Sending might block if the peer didn't grant enough flow
control credit.
Marten Seemann [Sun, 4 May 2025 03:35:46 +0000 (11:35 +0800)]
ci: set a 30 minute timeout for the interop Docker job (#5112)
Marten Seemann [Sat, 3 May 2025 14:06:23 +0000 (22:06 +0800)]
simplify tracking of Transports for connection migration (#5111)
No functional change expected.
Marten Seemann [Sat, 3 May 2025 12:24:40 +0000 (20:24 +0800)]
delete retired connection IDs after 3 PTOs (#5109)
Marten Seemann [Sat, 3 May 2025 12:11:57 +0000 (20:11 +0800)]
remove periodic logging functionality from packet handler map (#5110)
Marten Seemann [Thu, 1 May 2025 16:35:11 +0000 (00:35 +0800)]
fix dequeuing logic for tiny CRYPTO frames (#5104)
For very small sizes, cryptoStream.PopCryptoStream could
have returned CRYPTO frames larger than the requested size.
Instead, it should return a nil frame.
Marten Seemann [Wed, 30 Apr 2025 04:53:37 +0000 (12:53 +0800)]
http3: migrate the server tests away from Ginkgo (#5085)
* http3: migrate the server tests away from Ginkgo
* http3: add a test for server settings
Zxilly [Wed, 30 Apr 2025 02:30:35 +0000 (10:30 +0800)]
fix parsing of interface index in packet info cmsg on big endian architectures (#5094)
Marten Seemann [Tue, 29 Apr 2025 10:05:14 +0000 (18:05 +0800)]
http3: return http.ErrServerClosed for ServeQUICConn after Server.Close (#5095)
Marten Seemann [Tue, 29 Apr 2025 03:58:10 +0000 (11:58 +0800)]
http3: remove Alt-Svc entry when Server.Serve returns (#5093)
Marten Seemann [Tue, 29 Apr 2025 02:08:41 +0000 (10:08 +0800)]
http3: use a slice instead of a map to store active listeners (#5087)
* http3: use a slice instead of a map to store active listeners
This list will be relatively short, therefore it will be
more performant to use a slice instead of a map.
No functional change expected.
* http3: rename listenerInfo to listener
TheoTechnicguy [Tue, 29 Apr 2025 01:55:43 +0000 (03:55 +0200)]
http3: fix documentation for Hijacker and HTTPStreamer (#5089)
* http3: update documentation for `Hijacker`
The documentation for `Hijacker` seems to be legacy from
[v0.43.0](https://github.com/quic-go/quic-go/releases/tag/v0.43.0). This
commit updates the documentation to reflect the current API use.
* http3: update documentation for `HTTPStreamer`
The documentation for `HTTPStreamer` seems to be legacy from
[v0.43.0](https://github.com/quic-go/quic-go/releases/tag/v0.43.0). This
commit updates the documentation to reflect the current API use.
Marten Seemann [Tue, 29 Apr 2025 01:45:04 +0000 (09:45 +0800)]
http3: use httptest.NewRequest (#5086)
No functional change expected.
Marten Seemann [Sun, 27 Apr 2025 09:27:28 +0000 (17:27 +0800)]
ackhandler: migrate the packet number generator tests away from Ginkgo (#5081)
Marten Seemann [Sun, 27 Apr 2025 07:44:32 +0000 (15:44 +0800)]
http3: migrate the frames tests away from Ginkgo (#5067)
Marten Seemann [Sat, 26 Apr 2025 13:48:34 +0000 (21:48 +0800)]
http3: migrate the body tests away from Ginkgo (#5078)
Marten Seemann [Thu, 24 Apr 2025 06:23:56 +0000 (14:23 +0800)]
http3: migrate the datagram tests away from Ginkgo (#5076)
Marten Seemann [Wed, 23 Apr 2025 05:52:22 +0000 (13:52 +0800)]
http3: migrate the response writer tests away from Ginkgo (#5075)
Marten Seemann [Tue, 22 Apr 2025 12:03:32 +0000 (20:03 +0800)]
http3: migrate the capsule tests away from Ginkgo (#5073)
Marten Seemann [Tue, 22 Apr 2025 11:37:26 +0000 (19:37 +0800)]
http3: check response writer for http.ResponseController methods (#5071)
Marten Seemann [Tue, 22 Apr 2025 11:24:46 +0000 (19:24 +0800)]
http3: simplify request writer by writing to an io.Writer (#5070)
It’s always preferable to use the most minimal interface.
Marten Seemann [Tue, 22 Apr 2025 10:54:31 +0000 (18:54 +0800)]
http3: migrate the headers tests away from Ginkgo (#5068)
Marten Seemann [Tue, 22 Apr 2025 10:53:48 +0000 (18:53 +0800)]
http3: migrate the request writer tests away from Ginkgo (#5069)
Marten Seemann [Mon, 21 Apr 2025 01:52:08 +0000 (09:52 +0800)]
use assert.AnError consistently in tests (#5066)
No functional change expected.
Marten Seemann [Sun, 20 Apr 2025 03:55:08 +0000 (11:55 +0800)]
use
ed25519 instead of RSA in tests and examples (#5050)
Also adds a golangci-lint depguard rules that forbids
importing crypto/rsa.
Marten Seemann [Sun, 20 Apr 2025 02:56:11 +0000 (10:56 +0800)]
improve documentation of errors returned from connection and streams (#5061)
* improve documentation of errors returned from the connection and streams
* further wordsmithing
Marten Seemann [Sun, 20 Apr 2025 02:49:59 +0000 (10:49 +0800)]
fix panic when probe packet containing a PATH_RESPONSE is lost (#5063)