Commit Graph

5684 Commits

Author SHA1 Message Date
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
Marten Seemann
1ae835d1d8 rename occurrences of session in client, server and packetHandlerMap 2022-03-27 11:27:25 +01:00
Marten Seemann
86338d3ce0 rename the sessionRunner to connRunner 2022-03-27 11:27:25 +01:00
Marten Seemann
97690dc493 rename the closed session to closed conn 2022-03-27 11:27:25 +01:00
Marten Seemann
e7c2e7e147 rename the quicSession to quicConnection 2022-03-27 11:27:25 +01:00
Marten Seemann
6aaa9a817c rename the EarlySession to EarlyConnection 2022-03-27 11:27:25 +01:00
Marten Seemann
fda9f72161 replace usages of session in variable names 2022-03-27 11:27:25 +01:00
Marten Seemann
e71c236232 rename the Session to Connection 2022-03-27 11:27:23 +01:00
Marten Seemann
42f3159497 Merge pull request #3359 from lucas-clemente/http3-dial-context
respect the request context when dialing
2022-03-25 10:27:43 +01:00
Marten Seemann
d3fab2a230 also the context when dialing an address 2022-03-25 10:11:55 +01:00
Marten Seemann
137491916b respect the request context when dialing 2022-03-25 09:47:05 +01:00
Marten Seemann
0d5440a024 update HTTP/3 Datagram to draft-ietf-masque-h3-datagram-07 (#3355) 2022-03-25 01:44:12 -07:00
Marten Seemann
d065fb47e1 add support for the Extended CONNECT method (#3357)
Extended CONNECT is used by WebTransport.
2022-03-25 01:43:48 -07:00
Marten Seemann
85b495445e remove the SkipSchemeCheck RoundTripOpt (#3353)
This option was needed for an early draft version of MASQUE.
MASQUE now uses the https scheme.
2022-03-25 09:38:17 +01:00
Marten Seemann
3a102406ea remove parser logic for HTTP/3 DUPLICATE_PUSH frame (#3356)
This frame was removed in draft-25.
2022-03-25 09:37:56 +01:00