Marten Seemann
56ff2a58cc
http3: use actual QUIC connection in stream tests ( #5170 )
2025-05-30 06:47:53 +02:00
Marten Seemann
e539fc4e88
http3: fix flaky TestClientStreamHijacking ( #5169 )
2025-05-30 05:11:04 +02:00
Marten Seemann
e354463e64
http3: use actual QUIC connection in frames tests ( #5165 )
...
* http3: use actual QUIC connection in frames tests
* wait for handshake completion
2025-05-30 04:54:48 +02:00
Marten Seemann
9ef305508d
http3: use actual QUIC stream in state tracking stream tests ( #5166 )
...
* http3: use actual QUIC stream in state tracking stream tests
* avoid sleeps
2025-05-30 04:47:17 +02:00
Marten Seemann
d9528a5643
http3: use actual QUIC connection in transport tests ( #5164 )
2025-05-29 15:10:30 +02:00
Marten Seemann
4e81b28694
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 >
2025-05-29 14:42:36 +02:00
Marten Seemann
77dff99007
http3: use actual QUIC connection and stream in client tests ( #5162 )
2025-05-29 13:06:36 +02:00
Marten Seemann
293d45da4b
http3: use actual QUIC connection and stream in server tests ( #5161 )
2025-05-29 11:06:09 +02:00
Marten Seemann
5c3af443c1
http3: simplify HTTP datagram handling ( #5156 )
2025-05-29 06:23:05 +02:00
Marten Seemann
0b834e6f46
http3: convert Stream from an interface to a struct ( #5154 )
2025-05-29 05:41:40 +02:00
Marten Seemann
2675d0845f
http3: convert RequestStream from an interface to a struct ( #5153 )
2025-05-29 05:08:39 +02:00
Marten Seemann
45e0d5fc7d
qlog: add support for reset_stream_at frame and transport parameter ( #5160 )
2025-05-28 09:43:42 +02:00
Marten Seemann
5d7ee61f5f
wire: add support for the reset_stream_at transport parameter ( #5158 )
2025-05-28 06:30:02 +02:00
Marten Seemann
cb5c3f2aad
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
2025-05-28 05:49:54 +02:00
Marten Seemann
eb7b7df1db
http3: migrate the state tracking stream tests away from Ginkgo ( #5151 )
2025-05-24 05:07:17 +02:00
Marten Seemann
5e5d03cf8d
http3: migrate the stream tests away from Ginkgo ( #5150 )
2025-05-23 16:07:00 +02:00
Marten Seemann
04eab22893
http3: fix off-by-one error when processing the GOAWAY stream ID ( #5145 )
v0.52.0
2025-05-20 08:43:33 +02:00
Marten Seemann
363e0ccafb
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
2025-05-18 07:33:43 +02:00
Marten Seemann
06e8ee1bcf
http3: reset stream if the server sends too many 1xx responses ( #5144 )
2025-05-17 06:18:18 +02:00
Ameame
8ef0a71581
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 >
2025-05-16 12:25:58 +02:00
sukun
eb8547ca73
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 >
2025-05-16 12:03:05 +02:00
Marten Seemann
77c401dcbb
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
2025-05-16 05:22:13 +02:00
Marten Seemann
d7ca54c602
fix flaky TestHandshakeCloseListener ( #5140 )
2025-05-11 06:54:28 +02:00
Marten Seemann
fe02bc2b66
http3: fix flaky TestClientRequestLengthLimit ( #5137 )
2025-05-11 06:12:26 +02:00
Marten Seemann
50dd857c57
http3: migrate the connection tests away from Ginkgo ( #5133 )
2025-05-10 16:17:25 +02:00
Marten Seemann
6f8460a821
http3: keep datagram receive loop running on datagram for unknown stream ( #5136 )
2025-05-10 14:41:47 +02:00
Marten Seemann
3f97a011a7
http3: migrate the client tests away from Ginkgo ( #5096 )
...
* http3: migrate the client tests away from Ginkgo
* http3: add a client settings test
2025-05-10 05:24:21 +02:00
Marten Seemann
8474eddd3a
use the slices package to simply QUIC version comparisons ( #5130 )
...
No functional change expected.
2025-05-09 06:24:45 +02:00
Marten Seemann
1725cb0878
http3: close QUIC listeners created by Server on graceful shutdown ( #5101 )
2025-05-08 08:22:11 +02:00
Marten Seemann
8296ba7d19
http3: don't close QUIC listeners created by the application ( #5129 )
2025-05-08 07:40:23 +02:00
Marten Seemann
f3f476a908
never close accepted connections when the listener is closed ( #5108 )
2025-05-06 05:18:44 +02:00
Marten Seemann
3d183f0e19
remove the changelog ( #5074 )
2025-05-06 05:05:59 +02:00
Marten Seemann
cfc6c16f36
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
2025-05-06 04:45:27 +02:00
Marten Seemann
4c6aca6b43
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.
2025-05-06 09:13:38 +07:00
Zxilly
21e5646e53
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 >
2025-05-05 17:12:03 +02:00
Marten Seemann
37d0a823d8
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.
2025-05-05 13:27:59 +02:00
Marten Seemann
57e46f8a4c
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
2025-05-05 13:04:10 +02:00
Marten Seemann
11ccfff388
ci: remove stray GITREF env from Docker interop workflow ( #5119 )
2025-05-05 12:56:10 +02:00
Marten Seemann
2082d2c6b9
move connection tracking into the Transport ( #5113 )
2025-05-05 05:05:17 +02:00
dependabot[bot]
6ef55ca271
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 >
2025-05-05 04:45:38 +02:00
Marten Seemann
44207b8e72
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
2025-05-05 04:28:01 +02:00
Marten Seemann
9b3ff059fc
delete closed connections after 3 PTOs ( #5117 )
...
In most cases, this should be earlier than the current
timeout value of 5s.
2025-05-04 12:51:39 +02:00
Marten Seemann
be709c10fd
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
2025-05-04 07:07:44 +02:00
Marten Seemann
e1a1251c84
http3: send GOAWAY frame in a new Goroutine ( #5114 )
...
Sending might block if the peer didn't grant enough flow
control credit.
2025-05-04 06:21:03 +02:00
Marten Seemann
a0a641d59a
ci: set a 30 minute timeout for the interop Docker job ( #5112 )
2025-05-04 05:35:46 +02:00
Marten Seemann
4d39fc31c5
simplify tracking of Transports for connection migration ( #5111 )
...
No functional change expected.
2025-05-03 16:06:23 +02:00
Marten Seemann
97e7657df5
delete retired connection IDs after 3 PTOs ( #5109 )
2025-05-03 14:24:40 +02:00
Marten Seemann
55229d3f21
remove periodic logging functionality from packet handler map ( #5110 )
2025-05-03 14:11:57 +02:00
Marten Seemann
d7b8447e0e
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.
2025-05-01 18:35:11 +02:00
Marten Seemann
9d06679273
http3: migrate the server tests away from Ginkgo ( #5085 )
...
* http3: migrate the server tests away from Ginkgo
* http3: add a test for server settings
2025-04-30 06:53:37 +02:00