市川恭佑 (ebi)
59958e5282
fix typo *connections ( #3309 )
2022-01-01 23:10:01 -08:00
Aaron Riekenberg
afbe993b4c
Add test setting http3.Server.Port.
2021-09-19 15:51:09 -05:00
Aaron Riekenberg
43ee0c6757
Export http3.Server.Port.
2021-09-18 10:29:37 -05:00
Aaron Riekenberg
8b56e7d2b5
Revert "Allow use of custom port value in Alt-Svc header."
...
This reverts commit ce8167c3cf .
2021-09-18 10:22:57 -05:00
Aaron Riekenberg
ce8167c3cf
Allow use of custom port value in Alt-Svc header.
2021-09-11 10:43:37 -05:00
Randy Reddig
346bd63a60
quicvarint: add Reader and Writer interfaces ( #3233 )
2021-08-05 10:49:17 -07:00
Marten Seemann
f51cc93770
drop support for QUIC draft version 32 and 34
2021-07-06 09:50:10 -07:00
folbrich
ea33fc95df
Update doc for dialer in http3.RoundTripper
2021-06-20 08:47:18 -06:00
Marten Seemann
68da2c4468
add support for QUIC v1, RFC 9000
2021-05-29 11:56:14 -07:00
Marten Seemann
6b771df453
add support for QUIC v1
2021-05-01 10:05:29 +07:00
Marten Seemann
90727cb41a
introduce a quic.StreamError type and use it for stream cancelations
2021-05-01 09:39:52 +07:00
Marten Seemann
42b61729bd
expose the TransportError and the ApplicationError
2021-05-01 09:38:49 +07:00
Marten Seemann
29f02e1bda
set the Content-Length for HTTP/3 responses
2021-03-15 13:09:09 +08:00
Marten Seemann
b8358dc2bb
Merge pull request #3063 from lucas-clemente/dont-reset-qpack-streams
...
don't reset the QPACK encoder / decoder streams
2021-03-08 18:08:02 +08:00
Kévin Dunglas
3b916f2e80
allow sending 1xx responses ( #3047 )
...
Currently, it's not possible to send informational responses such as 103 Early Hints or 102 Processing.
This patch allows calling WriteHeader() multiple times in order to send informational responses before the final one.
It follows the patch for HTTP/1 (golang/go#42597 ) and HTTP/2 (golang/net#96 ).
In conformance with RFC 8297, if the status code is 103 the current content of the header map is also sent. Its content is not removed after the call to WriteHeader() because the headers must also be included in the final response.
The Chrome and Fastly teams are starting a large-scale experiment to measure the real-life impact of the 103 status code.
Using Early Hints is proposed as a (partial) alternative to Server Push, which are going to be removed from Chrome: https://groups.google.com/a/chromium.org/g/blink-dev/c/K3rYLvmQUBY/m/21anpFhxAQAJ
Being able to send this status code from servers implemented using Go would help to see if implementing it in browsers is worth it.
2021-03-05 10:03:31 +08:00
Marten Seemann
6f32d2df1d
don't reset the QPACK encoder / decoder streams
...
We don't need these streams, since our QPACK implementation doesn't use the
dynamic table yet. However, we MUST NOT close / reset these streams. Instead,
just ignore them.
2021-03-04 11:14:00 +08:00
Marten Seemann
615540f8d5
use the correct HTTP/3 ALPN when using draft-34
2021-02-11 09:46:00 +08:00
Marten Seemann
e4dab7fb37
reenable key updates for HTTP/3
...
Chrome was recently updated to v88, which is able to handle key updates
correctly.
2021-01-20 14:51:42 +08:00
Marten Seemann
35939b25a9
allow access to the underlying quic.Stream from a http.ResponseWriter
2021-01-17 14:35:21 +08:00
Marten Seemann
4653549266
fix outdated comment for the http3.Server
2021-01-05 11:21:44 +08:00
Marten Seemann
d9c7467b56
Merge pull request #2973 from lucas-clemente/publicize-varint
...
publicize QUIC varint reading and writing
2021-01-02 12:05:53 +08:00
Marten Seemann
5e7fb50223
Merge pull request #2962 from lucas-clemente/skip-scheme-check
...
add a http3.RoundTripOpt to skip the request scheme check
2021-01-02 12:05:19 +08:00
Marten Seemann
c78634df38
add a http3.RoundTripOpt to skip the request scheme check
...
Otherwise, we'll only be able to issue https requests. This is what we
usually want, but for MASQUE support, the URL will be of the form
masque://example.org.
2021-01-02 10:21:18 +08:00
Marten Seemann
f9226887b4
rename ReadVarint / WriteVarInt / VarIntLen to Read / Write / Len
2021-01-02 00:15:07 +08:00
Marten Seemann
428bf488d1
remove stray TODO in the http3.Server
2021-01-01 12:50:21 +08:00
Marten Seemann
11c5045065
move varint encoding / decoding to a separate package
...
... which is not internal.
2021-01-01 11:46:45 +08:00
Marten Seemann
b47fe87e51
Merge pull request #2952 from lucas-clemente/reset-h3-uni-stream-when-type-unknown
...
cancel reading on unidirectional streams when the stream type is unknown
2020-12-29 07:42:24 +07:00
Marten Seemann
7e4ac36b2f
remove duplicate check of the URL scheme in the HTTP/3 client
...
There's already a check like this performed in the http3.RoundTripper.
2020-12-25 13:15:53 +07:00
Marten Seemann
b753005137
check that QUIC layer negotiated datagram support when handing SETTINGS
2020-12-23 15:06:04 +07:00
Marten Seemann
3cb07d8f00
add a http3.RoundTripper.EnableDatagram option
2020-12-23 15:06:04 +07:00
Marten Seemann
0b0cb7c06f
add a http3.Server.EnableDatagram option
2020-12-23 15:06:04 +07:00
Marten Seemann
aaf1d381d3
implement parsing and writing of the H3_DATAGRAM setting
2020-12-23 15:06:04 +07:00
Marten Seemann
160c11bd34
cancel reading on unidirectional streams when the stream type is unknown
...
Otherwise the stream would remain open indefinitely.
2020-12-23 15:00:01 +07:00
Marten Seemann
f68dfd5c3b
Merge pull request #2949 from lucas-clemente/http3-control-streams
...
implement HTTP/3 control stream handling
2020-12-23 14:58:51 +07:00
Marten Seemann
808671e2d4
accept the control stream and parse SETTINGS frame, for the H3 client
2020-12-23 14:49:41 +07:00
Marten Seemann
f92b0ec74a
make the HTTP/3 client request tests more strict
2020-12-23 14:47:16 +07:00
Marten Seemann
04eebb7f6a
reject push streams initiated by the client
2020-12-23 14:47:16 +07:00
Marten Seemann
bf54ffe0df
accept the control stream and parse SETTINGS frame, for the H3 server
2020-12-23 14:47:14 +07:00
Marten Seemann
f68691b316
Merge pull request #2947 from lucas-clemente/h3-message-error
...
add the H3_MESSAGE_ERROR
2020-12-22 16:47:47 +07:00
Marten Seemann
4c6496bc0e
simplify Read and Write mock calls in http3 tests
2020-12-21 14:41:22 +07:00
Marten Seemann
8a84201ce4
add the H3_MESSAGE_ERROR
2020-12-21 12:04:29 +07:00
Marten Seemann
9693a46d31
Merge pull request #2162 from lucas-clemente/datagram
...
implement the datagram draft
2020-12-17 11:22:40 +07:00
Marten Seemann
356c69944e
return a quic.ConnectionState from Session.ConnectionState()
2020-12-09 15:31:23 +07:00
Marten Seemann
595f6f814a
introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout
2020-12-08 16:12:39 +07:00
Marten Seemann
29f48d8d70
Merge pull request #2906 from lucas-clemente/chrome-compatibility-mode
...
disable key updates when using HTTP/3 to avoid breaking Chrome 87
2020-12-04 09:23:07 +07:00
Marten Seemann
9f14d82553
fix a crash in the http3.Server when GetConfigForClient returns nil
2020-12-03 16:51:32 +07:00
Marten Seemann
35690c5d46
disable key updates when using HTTP/3 to avoid breaking Chrome 87
2020-11-27 10:38:16 +07:00
Marten Seemann
656490c9b1
explicitly set the supported versions in the HTTP/3 server test
2020-11-02 12:47:40 +07:00
Marten Seemann
898f484d0a
only allow the HTTP/3 client to dial with a single QUIC version
2020-11-02 11:29:42 +07:00
Marten Seemann
30c91149c2
fill out the http.Response.TLS field
2020-11-02 11:29:42 +07:00