Commit Graph

5698 Commits

Author SHA1 Message Date
Marten Seemann
bad60f3c27 add the version number for QUIC v2 2022-05-25 15:50:04 +02:00
Marten Seemann
8185d1b4e0 Merge pull request #3424 from lucas-clemente/fix-tls-error-handling2
don't ignore errors that occur when the TLS ClientHello is generated
2022-05-20 13:12:57 +02:00
Marten Seemann
53be3ee500 don't send CONNECTION_CLOSE if error occurred before sending anything 2022-05-20 12:27:00 +02:00
Marten Seemann
c225299c84 handle TLS errors that occur before the ClientHello has been written 2022-05-20 12:27:00 +02:00
Marten Seemann
12d50e6810 tighten typing of channel in the crypto setup 2022-05-20 12:27:00 +02:00
Marten Seemann
2e98150cd4 don't send path MTU probe packets on a timer (#3423) 2022-05-20 03:10:39 -07:00
Marten Seemann
de5f08171b introduce a http3.RoundTripOpt to prevent closing of request stream (#3411) 2022-05-20 02:54:31 -07:00
Marten Seemann
6511723c28 don't close the request stream when http3.DataStreamer was used (#3413) 2022-05-20 02:53:44 -07:00
Ivan Trubach
0ec8ee3cff do not embed http.Server in http3.Server (#3397)
This change removes the embedded http.Server struct from http3.Server.
It slightly changes some error behavior, in particular, it mandates
TLSConfig for methods that create QUIC listeners.

Before this change, only Addr, TLSConfig, Handler and MaxHeaderBytes
options were used from the http.Server. These are now defined directly
in http3.Server with an improved documentation.
2022-05-20 02:53:23 -07:00
Chao Fei
60bbe92194 remove error return value from ComposeVersionNegotiation (#3410) 2022-05-12 08:03:39 -07:00
Chao Fei
b9a77af8f9 don't set receive buffer if it is already large enough (#3407) 2022-05-12 04:24:37 -07:00
Didrik Nordström
d39a33f921 clone TLS conf in newClient (#3400)
Fixes #3394
2022-05-12 03:27:25 -07:00
hareku
0a08d62dea remove warning comments of stable implementation (#3399) 2022-05-05 01:45:54 -07:00
Marten Seemann
5dedb7e12c fix parsing of request path for Extended CONNECT requests (#3388) 2022-04-25 04:20:58 -07:00
Marten Seemann
d5961e9d60 update docs to reflect that we support RFC 9221 (Unreliable Datagrams) (#3382) 2022-04-25 04:10:51 -07:00
Marten Seemann
21eda36971 fix deadlock on concurrent http3.Server.Serve and Close calls (#3387) 2022-04-25 04:10:39 -07:00
Marten Seemann
a6a9b2494b reduce flakiness of deadline integration tests (#3383) 2022-04-25 04:00:33 -07:00
Marten Seemann
8bcb6337d1 protect against concurrent use of Stream.Write (#3381) 2022-04-25 03:58:24 -07:00
Marten Seemann
ec118e440c protect against concurrent use of Stream.Read (#3380) 2022-04-25 03:58:11 -07:00
hareku
823c609be4 Expose quic server closed err (#3395)
* expose quic server closed error

* http3.Server's serving method returns http.ErrServerClosed when quic listener is closed

* Revert "http3.Server's serving method returns http.ErrServerClosed when quic listener is closed"

This reverts commit fb1f244440.
2022-04-25 03:10:55 -07:00
hareku
1a0d577854 implement HTTP/3 unidirectional stream hijacking (#3389)
* implement HTTP/3 unistream hijacking

* Apply suggestions from code review

Fixed name consistency.

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* rename unistream to unidirectional stream

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-04-21 09:51:18 -07:00
Marten Seemann
6d4a694183 add LocalAddr and RemoteAddr functions to http3.StreamCreator (#3384) 2022-04-16 06:09:01 -07:00
Marten Seemann
21160a02ff Merge pull request #3362 from lucas-clemente/webtransport
extend the HTTP/3 API for WebTransport support
2022-04-16 13:51:25 +01:00
Marten Seemann
ff6313fdb3 make the responseWriter hijackable 2022-04-03 14:28:15 +01:00
Marten Seemann
a983db0301 pass the connection to the client's StreamHijacker callback 2022-04-03 14:28:15 +01:00
Marten Seemann
448e8bcf05 add a stream ID getter function to the body 2022-04-03 14:28:15 +01:00
Marten Seemann
eddb2b819a add a stream ID getter function to the responseWriter 2022-04-03 14:28:15 +01:00
Marten Seemann
9c8cdeda57 allow HTTP clients to set the number of incoming streams in quic.Config 2022-04-03 14:28:15 +01:00
Marten Seemann
48a2cce9df implement HTTP/3 stream hijacking 2022-04-03 14:28:15 +01:00
Marten Seemann
a54816867f make it possible to set settings unknown to the http3 package 2022-04-03 14:28:15 +01:00
Marten Seemann
57461e01b5 add a http3.Hijacker that allows stream creation on a QUIC session from a http.Response.Body 2022-04-03 14:28:15 +01:00
Marten Seemann
332473668a remove unneeded network from custom dial function used in HTTP/3 (#3368) 2022-04-03 06:27:55 -07:00
Marten Seemann
fa0dba963a Merge pull request #3367 from lucas-clemente/update-golangci-lint
stop using the deprecated net.Error.Temporary, update golangci-lint to v1.45.2
v0.27.0
2022-04-03 12:43:45 +01:00
Marten Seemann
7c63050da1 remove deprecated scopelint linter from golangci-lint 2022-04-02 20:36:18 +01:00
Marten Seemann
42bfe5aa70 add a nolint directive for the use of net.Error.Temporary when reading from conn 2022-04-02 20:35:43 +01:00
Marten Seemann
4f85f45f0a stop using net.Error.Temporary in tests 2022-04-02 20:31:08 +01:00
Marten Seemann
0c6b3dfa93 run the updated version of gofumpt 2022-04-02 20:18:37 +01:00
Marten Seemann
7265441042 update golangci-lint to v1.45.2 2022-04-02 20:06:16 +01:00
Marten Seemann
d1498c360e add support for serializing Extended CONNECT requests (#3360) 2022-04-02 11:55:42 -07:00
Marten Seemann
26fbf99275 Merge pull request #3364 from lucas-clemente/better-go-version-error
improve the error thrown when building with an unsupported Go version
2022-04-02 19:55:20 +01:00
Marten Seemann
ba697c5838 also throw an error for outdated Go versions 2022-03-30 16:05:21 +01:00
Marten Seemann
aef7ac0a48 improve the error thrown when building with an unsupported Go version 2022-03-30 15:44:59 +01:00
ignoramous
9620cc745c remove nextdns from list of projects using quic-go (#3363)
ref: github.com/nextdns/nextdns/commit/538d0a85
2022-03-28 14:31:43 -07:00
Marten Seemann
d008a253b8 Merge pull request #3361 from lucas-clemente/rename-session
rename the Session to Connection
2022-03-27 14:06:59 +02:00
Marten Seemann
4b17343631 rename the session to connection 2022-03-27 12:50:14 +01:00
Marten Seemann
d7ad1b6b9b rename the connection to rawConn 2022-03-27 12:28:43 +01:00
Marten Seemann
3126062aa7 rename files dealing with low level conns to sys_conn 2022-03-27 12:28:41 +01:00
Marten Seemann
f68b38635a rename occurrences of session in HTTP/3 server and client 2022-03-27 11:27:25 +01:00
Marten Seemann
9bc32cd021 rename the SessionTracingKey to ConnectionTracingKey 2022-03-27 11:27:25 +01:00
Marten Seemann
a088ba4607 rename quicConn.earlySessionReady to quicConn.earlyConnReady 2022-03-27 11:27:25 +01:00