Commit Graph

61 Commits

Author SHA1 Message Date
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