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
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
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
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
b753005137
check that QUIC layer negotiated datagram support when handing SETTINGS
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
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
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
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
2839cbdcff
make it possible to set VersionTLS to a draft version
...
Go doesn't allow duplicate cases in a switch statement.
2020-11-02 11:29:42 +07:00
Marten Seemann
5d1450bee7
use the QUIC versions from the quic.Config for setting Alt-Svc
2020-10-29 13:44:24 +07:00
Marten Seemann
c968b18a21
select the H3 ALPN based on the QUIC version in use (for the H3 server)
2020-10-29 13:44:23 +07:00
Marten Seemann
8752576f26
run gofumpt, enable the gofumpt linter
2020-10-26 09:33:35 +07:00
Marten Seemann
7d29cc31f8
remove the H3_EARLY_RESPONSE error
2020-07-27 12:01:53 +07:00
Marten Seemann
5f37327f1d
update the ALPN for draft-29
2020-06-12 10:06:23 +07:00
Marten Seemann
5720053807
simplify stream handling in the http3.Server
2020-06-02 14:39:48 +07:00
Marten Seemann
dbe925d74a
update the ALPN tokens to draft-28
2020-05-27 09:54:03 +07:00
Marten Seemann
683230372e
use a buffered writer for the http3 response writer
2020-04-02 15:15:29 +07:00
Marten Seemann
43dfc7281f
update H3 and hq to -27
2020-03-01 12:22:07 +07:00
Marten Seemann
a44c81e210
fix race condition when creating the logger for the HTTP/3 server
2020-02-25 16:09:19 +07:00
Marten Seemann
215ca4c155
remove stray GinkgoRecover() in http3.Server
2020-02-23 09:43:40 +07:00
phuslu
6de97fce55
Add LocalAddrContextKey/ServerContextKey to http3 request context
2020-02-01 20:36:13 +08:00
Marten Seemann
950f278362
accept 0-RTT request in the http3 server
2020-01-29 11:34:08 +07:00
Marten Seemann
bc25840519
use 0.5-RTT data to open the control stream in the http3 server
2020-01-29 10:40:06 +07:00
Marin
44cc47a887
set remote address on http request
2020-01-14 13:30:26 +01:00
Marten Seemann
e08b6b37c4
update the H3 ALPN to draft-24
2019-12-04 08:39:06 +07:00
Marten Seemann
b444ca613c
don't replace the ALPN in the tls.Config returned by GetConfigForClient
2019-11-09 17:26:52 +07:00
Marten Seemann
fe6cda98eb
close the connection on unexpected frames when reading a HTTP/3 body
2019-10-25 09:39:40 +07:00
Marten Seemann
ea0050e2a2
update HTTP/3 errors
...
* rename HTTP_UNEXPECTED_FRAME to HTTP_FRAME_UNEXPECTED
* remove the HTTP_WRONG_STREAM error
* rename errors from HTTP_ to H3_
2019-10-23 09:43:47 +07:00
Julien Salleyron
f110af917b
Remove QUIC version hint
2019-10-21 17:18:02 +02:00
Julien Salleyron
ff89d42262
Fix alt-svc header
2019-10-12 19:07:16 +02:00
Marten Seemann
917cfc0d39
rework stream / connection erros for the server
2019-09-14 10:16:43 +07:00
Marten Seemann
7b88d8fdb5
Merge pull request #2112 from lucas-clemente/update-h3-errors
...
update HTTP/3 errors
2019-09-05 15:01:58 +07:00
Marten Seemann
717e6d5c96
implement serving multiple connections at the same time
2019-09-05 13:10:26 +07:00
Marten Seemann
f9bbac8b04
update HTTP/3 errors
2019-09-04 12:06:17 +07:00
Marten Seemann
564bd6b7ba
document that closing a http3.Server created by Serve doesn't close conn
2019-09-01 11:15:01 +07:00