Marten Seemann
ccf897e519
remove the http3.DataStreamer ( #3435 )
2022-06-09 01:17:43 -07:00
Marten Seemann
e27fa1c9cf
update qtls to include the recent session ticket changes to crypto/tls ( #3443 )
...
This includes the changes released in Go 1.18.3 and Go 1.17.11.
2022-06-09 09:24:04 +02:00
Marten Seemann
9dfe9d5109
always reset header buffer, even when QPACK encoding fails ( #3436 )
2022-06-09 09:23:42 +02:00
Aaron Riekenberg
990b1fed38
Change "HTTP/3" to "HTTP/3.0". ( #3439 )
2022-06-02 10:33:06 -07:00
Marten Seemann
b5ef99a32c
remove stray http3 connection file
...
This was accidentally commited in #3411 .
2022-05-29 11:26:00 +02:00
Marten Seemann
708eb47cec
Merge pull request #3429 from lucas-clemente/stream-hijacker-errors
...
pass frame / stream type parsing errors to the hijacker callbacks
2022-05-27 18:16:11 +02:00
Marten Seemann
96c0daceca
pass frame / stream type parsing errors to the hijacker callbacks
...
When a stream is reset, we might not have received the frame / stream
type yet. The callback might be able to identify if it was a stream
intended for that application by analyzing the stream reset error.
2022-05-27 17:53:54 +02:00
Marten Seemann
5cb2e8265c
fix handling of unknown frames in the stream hijacker
2022-05-27 17:35:00 +02:00
Marten Seemann
3088865952
add test for bidirectional stream hijacker ( #3434 )
...
Co-authored-by: hareku <hareku908@gmail.com >
2022-05-27 03:38:00 -07:00
Marten Seemann
9d5de12933
make it possible to parse a varint at the end of a reader ( #3428 )
...
An io.Reader can read into the buffer and return the io.EOF in the same
call. In fact, that's how the quic.Stream is implemented.
In that case, we shouldn't return an error from quicvarint.Read,
otherwise the caller won't be able to parse a varint sent just before a
stream was closed.
2022-05-26 10:52:50 -07: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