Marten Seemann
b9d934ff8b
http3: tighten checks for incorrect use of RequestStream ( #5231 )
...
The RequestStream is a low-level API that’s used by WebTransport,
CONNECT-UDP and CONNECT-IP. Methods on the RequestStream must be called
in a certain order, and we should detect misuse of the API.
2025-06-20 09:55:11 +02:00
Marten Seemann
7d5e0570c4
http3: avoid reinitilising the frame parser on the stream ( #5232 )
...
No functional change expected.
2025-06-20 07:34:03 +02:00
Marten Seemann
f27b056998
http3: remove deprecated RoundTripper ( #5230 )
2025-06-20 05:44:53 +02:00
Marten Seemann
66e2539b2e
http3: explicitly expose all method on the RequestStream ( #5216 )
2025-06-19 12:16:26 +02:00
Marten Seemann
f16ffc6d16
http3: add ClientConn.Context, CloseWithError and Conn ( #5219 )
2025-06-17 18:29:27 +02:00
Marten Seemann
39f6e120c0
http3: remove deprecated SingleDestinationRoundTripper type ( #5217 )
2025-06-09 13:46:53 +02:00
Marten Seemann
6c82ac07cf
http3: convert Connection interface to Conn struct ( #5204 )
2025-06-09 12:16:07 +02:00
Marten Seemann
5f3d617dec
convert Connection interface to Conn struct ( #5195 )
2025-06-09 11:51:46 +02:00
Marten Seemann
9580396fa1
http3: simplify connection closing in the frame parser ( #5196 )
...
No functional change expected.
2025-06-07 07:21:53 +02:00
Marten Seemann
08be0f73c0
ci: stop using Ginkgo test command ( #5194 )
...
* ci: stop using Ginkgo test command
* ci: remove integrationtest directory for unit tests
2025-06-02 04:38:05 +02:00
Marten Seemann
1169d97e81
convert ReceiveStream interface to a struct ( #5173 )
2025-06-01 06:08:18 +02:00
Marten Seemann
78e77bcfdb
convert SendStream to a struct ( #5172 )
2025-06-01 05:53:53 +02:00
Marten Seemann
eb656df2fe
convert Stream interface to a struct ( #5149 )
2025-06-01 05:40:05 +02:00
Marten Seemann
eb427b599e
http3: fix flaky TestConnControlStreamFailure ( #5188 )
2025-05-31 10:21:17 +02:00
Marten Seemann
f8a1711ce7
http3: fix flaky TestServerRequestHeaderTooLarge ( #5186 )
2025-05-31 09:58:20 +02:00
Marten Seemann
a39928c556
http3: fix flaky TestClientResponseValidation ( #5183 )
2025-05-31 09:48:45 +02:00
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
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 )
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
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
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
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
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
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
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
Marten Seemann
41cc01890d
http3: return http.ErrServerClosed for ServeQUICConn after Server.Close ( #5095 )
2025-04-29 12:05:14 +02:00
Marten Seemann
5daf5b6535
http3: remove Alt-Svc entry when Server.Serve returns ( #5093 )
2025-04-29 05:58:10 +02:00
Marten Seemann
dae68d7ca0
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
2025-04-29 04:08:41 +02:00
TheoTechnicguy
a9d8093eaf
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.
2025-04-29 03:55:43 +02:00
Marten Seemann
f2b1842d52
http3: use httptest.NewRequest ( #5086 )
...
No functional change expected.
2025-04-29 03:45:04 +02:00
Marten Seemann
e423d4d184
http3: migrate the frames tests away from Ginkgo ( #5067 )
2025-04-27 09:44:32 +02:00
Marten Seemann
d84d985b92
http3: migrate the body tests away from Ginkgo ( #5078 )
2025-04-26 15:48:34 +02:00
Marten Seemann
7437cff1e0
http3: migrate the datagram tests away from Ginkgo ( #5076 )
2025-04-24 08:23:56 +02:00