Commit Graph

44 Commits

Author SHA1 Message Date
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
Marten Seemann
328dd2c848 set the H3 ALPN on tls.Configs returned by GetConfigForClient 2019-08-24 15:23:37 +07:00
Marten Seemann
fd30146de5 replace the list of ALPN instead of appending to it in http3 2019-08-24 15:22:36 +07:00
Marten Seemann
9294652ecc reject http3 requests that exceeded the header size limit 2019-08-22 10:23:51 +07:00
Marten Seemann
566c709548 update H3 ALPN to draft-22 2019-07-18 17:38:49 -04:00
Marten Seemann
2b8cece60a add a context to Session.Open{Uni}StreamSync 2019-06-22 19:37:21 +08:00
Marten Seemann
5550ba2c3b add a context to Session.Accept{Uni}Stream 2019-06-22 19:37:11 +08:00
Marten Seemann
12bce1caaa add a context to Listener.Accept 2019-06-22 19:36:52 +08:00
Marten Seemann
1bf489b7af open a control stream and send a SETTINGS frame as an H3 server 2019-05-21 15:28:38 +01:00
Marten Seemann
afa4615c4d make sure the TLS config contains the H3 ALPN token in server and client 2019-05-20 17:55:59 +01:00
Marten Seemann
7d701893a2 fix reading of the EOF in the HTTP/3 server
Read([]byte{}) returns immediately, whereas Read([]byte{0}) blocks until
the stream is actually closed. This make as difference if the STREAM
frame with the FIN is received after the HTTP handler returned.
2019-05-08 15:41:56 +09:00
Marten Seemann
4f6d0e651a implement HTTP/3 2019-04-11 09:06:10 +09:00