Marten Seemann
fcf8d4b3ff
http3: validate Host header before sending ( #3948 )
2023-07-11 23:27:24 -07:00
Marten Seemann
3d89e545d3
use the new crypto/tls QUIC Transport ( #3860 )
2023-07-01 11:15:00 -07:00
Marten Seemann
21388c86bb
drop support for draft-29 ( #3903 )
2023-06-21 04:06:44 -07:00
Jean-Francois Giorgi
9acce3c6d9
http3: return http.ErrServerClosed instead of quic.ErrServerClosed ( #3900 )
...
* - fix 3898
* fix gofumpt
* - refactoring: inline serveListener in ServeListener
- use ServeListener in s.serveConn
- updated doc for the returned error
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-06-20 09:32:56 -07:00
Glonee
9237dbb167
http3: close the connection when closing the roundtripper ( #3873 )
2023-06-01 01:06:13 -07:00
Glonee
c96fbd2e4a
http3: correctly use the quic.Transport ( #3869 )
...
* use quic.Transport in http3
* add intergrationtests to dial server with different server names
* update test
2023-05-31 23:31:20 -07:00
Glonee
21549fcb4a
http3: set tls.Config.ServerName for outgoing requests, if unset ( #3867 )
...
* fix #3865
* add test case
* Update http3/client, client_test.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-05-31 22:45:56 -07:00
Glonee
cec79d338c
implement http3.RoundTripper.CloseIdleConnections ( #3820 )
...
* implement CloseIdleConnections
* nit
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-05-15 00:12:00 -07:00
Marten Seemann
7a0ef5f867
make Config.Allow0RTT a bool, not a callback
2023-05-02 15:56:49 +02:00
Marten Seemann
86a1234c87
make EarlyListener a struct, not an interface
2023-05-01 14:41:16 +02:00
Marten Seemann
aee7706d5d
clean up dial functions
...
* add a context to all Dial functions
* remove the explicit Dial{*}Context functions
2023-05-01 13:59:54 +02:00
Marten Seemann
d683b841c4
remove the host parameter from all dial functions
2023-05-01 13:59:54 +02:00
Marten Seemann
2b0a03a988
set the QUIC version for integration tests using a command line flag
2023-05-01 13:43:34 +02:00
Kévin Dunglas
172123c340
http3: add compatibility with net/http.ResponseController ( #3790 )
...
* feat: compatibility with "net/http".ResponseController
* better deadline tests
* don't run deadline tests on Go 1.19
* skip deadline tests on Go 1.19
2023-05-01 04:40:33 -07:00
Marten Seemann
c9a2f79b1c
simplify mockgen usage for private interfaces ( #3769 )
2023-04-19 07:57:00 -07:00
Marten Seemann
1f57d4e789
protocol: remove VersionTLS, used during the gQUIC -> TLS 1.3 transition ( #3764 )
2023-04-19 07:24:34 -07:00
Jean-Francois Giorgi
3f06880917
http3: check scheme before host to be consistent with net/http ( #3774 )
...
* check scheme before host so the error is comprehensible and consistent with net/http
* Update http3/roundtrip.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-04-17 02:34:51 -07:00
Jean-Francois Giorgi
af517bdef1
http3: make error codes public and consistent with http2 package ( #3744 )
...
* make http3 error codes public and consistent with http2 package
* typo on ErrNoError
* renaming of ErrCode values
2023-04-07 21:53:14 -07:00
Marten Seemann
a4b0265628
use a chan instead of a context in Connection.HandshakeComplete ( #3709 )
2023-03-26 06:51:56 -07:00
Marten Seemann
41ddaa0262
attach the QUIC version to context returned by ClientHelloInfo.Context ( #3721 )
2023-03-26 22:26:14 +09:00
Glonee
6d7280b7dc
http3: use a single UDPConn in RoundTripper ( #3720 )
...
* http3: use a single UDPConn in RoundTripper
* update
* add tests
2023-03-14 18:58:26 -07:00
Glonee
a92238b73c
http3: sniff HTTP Content Type ( #3715 )
...
* add sniff
* add test for sniff
* fix typo in comment
* move bodyAllowedForStatus() to top of the function to aviod calling it twice
* add comments
* format with gofumpt
* fix typo and simplify the code
2023-02-20 17:29:45 -08:00
Marten Seemann
e0d4ffffef
http3: fix race condition when accessing the client's connection ( #3696 )
...
* http3: fix race condition when accessing the client's connection
* add an integration test for concurrent HTTP requests
---------
Co-authored-by: Bulat Khasanov <afti@yandex.ru>
2023-02-13 14:54:09 -08:00
Marten Seemann
04c3fd0756
deprecate quicvarint.Write in favor of quicvarint.Append ( #3690 )
2023-02-13 02:52:25 -08:00
Marten Seemann
89769f409f
http3: correctly handle closed clients ( #3684 )
...
* http3: use a mock roundTripCloser in tests
* http3: correctly handle failed clients
Specifically,
* immediately remove a client when a request errored
* if that error was an idle error, and the client was a reused client
(from an earlier request that already completed the handshake),
re-dial the connection
2023-01-28 00:49:52 -08:00
Avi Rosenberg
7b2c69451e
http3: change status codes to const ( #3683 )
...
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com>
2023-01-27 14:40:59 -08:00
mstmdev
bbeea8dca0
http3: use HTTP/2 as the default protocol in ListenAndServe ( #3673 )
2023-01-23 17:48:35 -08:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00
Marten Seemann
9488539a49
update imports to use qtls and qpack from quic-go GitHub organization ( #3676 )
2023-01-20 13:42:54 -08:00
Marten Seemann
45b489b6f6
make ConnectionState usable during the handshake
2023-01-05 16:37:07 +13:00
Avi Rosenberg
cf1aff0492
http3: simplify if condition in roundtripper ( #3658 )
...
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com>
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com>
2023-01-01 12:20:44 -08:00
Marten Seemann
76761598e9
http3: add support for parsing and writing HTTP/3 capsules ( #3607 )
2022-11-03 10:34:01 -07:00
David Brouwer
047f9b6ffa
http3: add request to response ( #3608 )
2022-11-02 13:39:34 -07:00
Marten Seemann
e496120c76
http3: add a ConnectionState method to the StreamCreator interface ( #3600 )
2022-10-22 02:52:30 -07:00
Marten Seemann
85fbfb9405
http3: add a Context method to the StreamCreator interface ( #3601 )
2022-10-22 02:51:24 -07:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
2b5d1281c1
http3: add http3.Server.ServeQUICConn to serve a single QUIC connection ( #3587 )
2022-10-11 05:07:24 -07:00
Marten Seemann
c75bf49422
http3: expose ALPN values ( #3580 )
2022-10-11 04:27:49 -07:00
shade34321
a905648480
http3: handle ErrAbortHandler when the handler panics ( #3575 )
...
* Handle abort like the stdlib does
* Using the sentinel value from the stdlib instead of redefining.
* we return before logging out
* Added test to hand abort handler
* Added in two tests but apparently only saved the first one.
* remove one test case because it wasn't needed
2022-10-09 07:50:04 -07:00
Marten Seemann
424a66389c
http3: fix double close of chan when using DontCloseRequestStream ( #3561 )
2022-09-23 03:10:25 -07:00
Marten Seemann
62b82789c0
http3: reduce usage of bytes.Buffer ( #3539 )
2022-09-01 06:39:21 -07:00
mojatter
dd521c0573
http3: fix listening on both QUIC and TCP ( #3465 )
2022-08-20 08:56:28 -07:00
Marten Seemann
498475fa60
update golangci-lint action to v3, golangci-lint to v1.48.0 ( #3499 )
...
* run gofmt -s -w
* stop using the deprecated io/ioutil package
* update golangci-lint action to v3, golangci-lint to v1.48.0
2022-08-10 09:50:48 -07:00
Marten Seemann
61ca8e89fe
http3: ignore context after response when using DontCloseRequestStream ( #3473 )
2022-07-24 11:58:12 -07:00
Matt Robenolt
98b25879e5
dedupe Alt-Svc header values ( #3461 )
2022-06-28 00:58:44 -07:00
Marten Seemann
6fbc6d951a
fix flaky HTTP/3 request body test ( #3447 )
2022-06-09 11:32:20 -07:00
Nuno Diegues
4c96cf75bf
make the keep alive interval configurable ( #3444 )
...
* Make keep alive configurable
* Fix unit tests
2022-06-09 08:31:37 -07:00
Marten Seemann
619fa9fb44
Merge pull request #3432 from lucas-clemente/quicv2
...
implement QUIC v2
2022-06-09 15:52:40 +02:00
Marten Seemann
3eed9d1104
don't close the stream if it was hijacked
2022-06-09 10:51:23 +02:00
Marten Seemann
6fa7494c2f
add a http3.HTTPStreamer, allowing users to take over the HTTP/3 stream
2022-06-09 10:51:23 +02:00