Commit Graph

6689 Commits

Author SHA1 Message Date
Marten Seemann
7b769f7a31 ci: simplify the go generate script (#4728) 2024-11-25 12:40:15 +08:00
Marten Seemann
3e0a67b247 ci: update golangci-lint to v1.62.0 (#4725) 2024-11-18 16:01:39 +01:00
Marten Seemann
21219d1122 fix documentation for IP fragmentation socket options on Windows (#4724)
https://datatracker.ietf.org/doc/draft-seemann-tsvwg-udp-fragmentation/
contains details for IP fragmentation on different platforms.
2024-11-15 12:28:19 -08:00
Jason E. Aten, Ph.D.
86ebed7cf7 fix race condition in closed connection packet handling (#4720) 2024-11-07 08:47:17 -08:00
Mark Phelps
7ff8622136 README: add Flipt reverst (#4542)
Signed-off-by: Mark Phelps <209477+markphelps@users.noreply.github.com>
2024-11-05 01:42:39 -08:00
Marten Seemann
955506aa3b fix arming of keep-alive timer after sending PMTUD probe packets (#4716) 2024-11-04 04:09:10 -08:00
WeidiDeng
98de6aebf7 http3: fix graceful server shutdown (#4707)
* close connHandlingDone once only when the server is shutting down

* close underlying listeners during graceful  shutdown when there is no connection

* remove connDoneOnce
v0.48.1
2024-10-21 22:35:35 -07:00
Marten Seemann
6af2b1a478 http3: rename Server.CloseGracefully to Shutdown (#4701)
This is more consistent with standard library naming for graceful
shutdown methods for HTTP/1 and HTTP/2.
v0.48.0
2024-10-15 02:14:47 -07:00
Marten Seemann
4a9a81ca34 http3: output panic stack trace as a string (#4700)
It currently is logged as a byte slice.
2024-10-15 01:46:21 -07:00
Marten Seemann
588b93c817 http3: add (deprecated) type aliases for RoundTripper and SingleDestinationRoundTripper (#4699)
This will make transitioning to the new types easier.
2024-10-14 00:15:46 -07:00
Marten Seemann
2dc1e355ce http3: remove deprecated ListenAndServe and Server.SetQuicHeader (#4698) 2024-10-14 00:02:57 -07:00
Marten Seemann
d5d75921c8 qlog: remove deprecated DefaultTracer function (#4697) 2024-10-13 23:50:47 -07:00
Marten Seemann
29f903f486 http3: improve documentation for Transport and ClientConn (#4696) 2024-10-13 23:28:23 -07:00
Marten Seemann
0a6e362879 http3: don't expose ClientConn.HandleUnidirectionalStreams (#4695) 2024-10-13 22:45:49 -07:00
Marten Seemann
b4ae847386 http3: export the Capsule-Protocol header value (#4690) 2024-10-13 22:30:30 -07:00
Marten Seemann
1db805ce4f http3: improve the client API (#4693)
* http3: rename RoundTripper to Transport

* http3: rename SingleDestinationRoundTripper to ClientConn

* http3: construct the ClientConn via Transport.NewClientConn
2024-10-13 22:17:50 -07:00
Marten Seemann
eaa879f32f http3: send GOAWAY when server is shutting down (#4691)
* send goaway when server is shutting down

* http3: track next stream ID instead of last stream ID for GOAWAYs

* refactor the graceful shutdown integration tests

* http3: improve GOAWAY frame parsing tests

* http3: simplify server graceful shutdown logic

* http3: simplify parsing of GOAWAY frames

* http3: clean up initialization of server contexts

* http3: fix race condition in graceful shutdown logic

---------

Co-authored-by: WeidiDeng <weidi_deng@icloud.com>
2024-10-11 21:47:17 -07:00
Marten Seemann
8754d28a6a handshake: migrate tests away from Ginkgo (#4667) 2024-10-11 21:44:30 -07:00
Marten Seemann
e5693d0ad7 http3: immediately close all connections on Server.Close (#4689)
* http3: immediately close all connections on Server.Close

* http3: document connection closing when using ServeQUICConn
2024-10-09 13:24:13 -07:00
Marten Seemann
b2233591ad http3: fix capsule parsing (#4683)
The current code returns an io.ErrUnexpectedEOF on partial reads of the
capsule content.
2024-10-02 07:12:27 -07:00
Marten Seemann
e38d38d5d8 fuzzing: migrate tests for helper function away from Ginkgo (#4681) 2024-09-21 05:51:55 -07:00
Marten Seemann
aef34d59a9 proxy: migrate tests away from Ginkgo (#4680) 2024-09-21 05:15:13 -07:00
Marten Seemann
72c6180ce5 versionnegotiation: migrate tests away from Ginkgo (#4676)
* fix race condition in version negotiation tests

* versionnegotiation: migrate tests away from Ginkgo
2024-09-14 00:03:12 -07:00
Marten Seemann
3258060b48 utils: migrate tests away from Ginkgo (#4675) 2024-09-13 23:36:08 -07:00
sukun
d22d579733 don't cancel streams after shutdown (#4673)
This ensures that `stream.Write` and `stream.Read` return the error code
from connection close, if the stream was closed as a result of
connection close.
2024-09-13 21:47:48 -07:00
Marten Seemann
672f906a40 wire: migrate tests away from Ginkgo (#4643)
* wire: translate ACK frame tests

* wire: translate CONNECTION_CLOSE frame tests

* wire: translate DATA_BLOCKED frame tests

* wire: translate DATAGRAM frame tests

* wire: translate HANDSHAKE_DONE frame tests

* wire: translate MAX_DATA frame tests

* wire: translate MAX_STREAM_DATA frame tests

* wire: translate MAX_STREAMS frame tests

* wire: translate NEW_CONNECTION_ID frame tests

* wire: translate NEW_TOKEN frame tests

* wire: translate PATH_CHALLENGE frame tests

* wire: translate PATH_RESPONSE frame tests

* wire: translate PING frame test

* wire: translate RESET_STREAM frame tests

* wire: translate RETIRE_CONNECTION_ID frame tests

* wire: translate STOP_SENDING frame tests

* wire: translate STREAM_DATA_BLOCKED frame tests

* wire: translate STREAMS_BLOCKED frame tests

* wire: translate CRYPTO frame tests

* wire: translate STREAM frame tests

* wire: translate version negotiation tests

* wire: translate header tests

* wire: translate pool tests

* wire: translate frame logging tests

* wire: translate short header tests

* wire: translate framer parser tests

* wire: translate transport parameter tests
2024-09-12 19:27:39 -07:00
Marten Seemann
7a10ed602d utils: remove unused methods and constructor from RTTStats (#4672) 2024-09-12 00:55:57 -07:00
Marten Seemann
5247a8ee42 testdata: migrate tests away from Ginkgo (#4670) 2024-09-12 00:42:29 -07:00
Marten Seemann
06cfeb1034 ringbuffer: migrate test away from Ginkgo (#4671) 2024-09-12 00:26:02 -07:00
Marten Seemann
4aee0c0acd quicvarint: migrate tests away from Ginkgo (#4662) 2024-09-11 22:22:17 -07:00
Marten Seemann
196c4bb16b protocol: move away from Ginkgo (#4650) 2024-09-11 21:39:03 -07:00
Marten Seemann
3f3e12bd7c interop: move away from Ginkgo (#4652) 2024-09-11 20:50:14 -07:00
Marten Seemann
889dc81333 qtls: migrate tests away from Ginkgo (#4642)
* qtls: migrate tests away from Ginkgo

* qtls: simplify the quic.EncryptionLevel <-> tls.EncryptionLevel test

* qtls: improve naming of tests
2024-09-11 20:40:26 -07:00
Marten Seemann
a21f6c1c41 qerr: move away from Ginkgo (#4649) 2024-09-11 00:50:06 -07:00
Marten Seemann
72be861aa2 logging: migrate tests away from Ginkgo (#4641) 2024-09-11 00:49:02 -07:00
Marten Seemann
e52027f496 qlog: migrate tests away from Ginkgo (#4640)
* qlog: migrate tests away from Ginkgo

* ci: don't run prealloc linter on test files
2024-09-11 00:28:28 -07:00
Marten Seemann
8fc04bf1e0 fix calculation of idle timeout when the peer sets max_idle_timeout to 0 (#4666) v0.47.0 2024-09-08 02:29:09 -07:00
Marten Seemann
1ad36eb7b8 http3: avoid re-parsing of the Content-Length header for responses (#4648)
* http3: avoid re-parsing of the Content-Length header for responses

* http3: set http.Response.ContentLength to 0 for certain types of responses
2024-09-08 01:12:33 -07:00
Kevin McDonald
b92bf0c80d http3: initialize trailer map with empty trailer entries when parsing the header (#4656)
* feat: pre-populate trailers on response with empty values

* fix: improve comment/func name
2024-09-06 23:59:07 -07:00
Marten Seemann
4f48b2ce25 update qpack to v0.5.1 (#4664)
This release now doesn't reject N=1 values in Literal Field Line with
Name Reference.
2024-09-06 22:08:47 -07:00
Marten Seemann
9478a67635 ci: control concurrency of the interop Docker image builder (#4665) 2024-09-06 22:05:47 -07:00
Kevin McDonald
09c2ac8aab http3: add HTTP Trailer support for servers (#4630) 2024-09-06 21:51:54 -07:00
Marten Seemann
ad8f3c0ff8 fix handling of corrupted coalesced 1-RTT packets (#4663) 2024-09-06 20:43:42 -07:00
Marten Seemann
4be70e0146 protocol: use the packet number decoding / encoding logic from the RFC (#4661) 2024-09-05 09:54:44 -07:00
Marten Seemann
135b8c0e75 interop: fix server setup for the HTTP/0.9 server (#4658) 2024-09-03 02:14:53 -07:00
Marten Seemann
26a3525337 http3: reject connection-specific header fields, check value of TE (#4655) 2024-09-01 02:20:35 -07:00
Marten Seemann
1a25053e5e update qpack to v0.5.0 (#4653)
No features were added in v0.5.0, nor were any bugs fixed.
No functional change expected.
2024-08-31 19:58:51 -07:00
Marten Seemann
0b32adc145 interop: simplify API of http09.Server (#4651)
Removes the ListenAndServe method in favor of a ServeListener method.
2024-08-30 22:13:20 -07:00
Marten Seemann
7c3544ca34 http3: set ContentLength to -1 if no Content-Length header is set (#4645)
This applies to both the http.Response and the http.Request.
2024-08-30 05:28:06 -07:00
Marten Seemann
229937c503 http3: reject the Transfer-Encoding header field (#4646)
The use of Transfer-Encoding is forbidden in HTTP/3, see section 4.1 of
RFC 9114.
2024-08-28 05:31:58 -07:00