Avi Rosenberg
cf1aff0492
http3: simplify if condition in roundtripper ( #3658 )
...
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com >
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com >
2023-01-01 12:20:44 -08:00
Marten Seemann
76761598e9
http3: add support for parsing and writing HTTP/3 capsules ( #3607 )
2022-11-03 10:34:01 -07:00
David Brouwer
047f9b6ffa
http3: add request to response ( #3608 )
2022-11-02 13:39:34 -07:00
Marten Seemann
e496120c76
http3: add a ConnectionState method to the StreamCreator interface ( #3600 )
2022-10-22 02:52:30 -07:00
Marten Seemann
85fbfb9405
http3: add a Context method to the StreamCreator interface ( #3601 )
2022-10-22 02:51:24 -07:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
2b5d1281c1
http3: add http3.Server.ServeQUICConn to serve a single QUIC connection ( #3587 )
2022-10-11 05:07:24 -07:00
Marten Seemann
c75bf49422
http3: expose ALPN values ( #3580 )
2022-10-11 04:27:49 -07:00
shade34321
a905648480
http3: handle ErrAbortHandler when the handler panics ( #3575 )
...
* Handle abort like the stdlib does
* Using the sentinel value from the stdlib instead of redefining.
* we return before logging out
* Added test to hand abort handler
* Added in two tests but apparently only saved the first one.
* remove one test case because it wasn't needed
2022-10-09 07:50:04 -07:00
Marten Seemann
424a66389c
http3: fix double close of chan when using DontCloseRequestStream ( #3561 )
2022-09-23 03:10:25 -07:00
Marten Seemann
62b82789c0
http3: reduce usage of bytes.Buffer ( #3539 )
2022-09-01 06:39:21 -07:00
mojatter
dd521c0573
http3: fix listening on both QUIC and TCP ( #3465 )
2022-08-20 08:56:28 -07:00
Marten Seemann
498475fa60
update golangci-lint action to v3, golangci-lint to v1.48.0 ( #3499 )
...
* run gofmt -s -w
* stop using the deprecated io/ioutil package
* update golangci-lint action to v3, golangci-lint to v1.48.0
2022-08-10 09:50:48 -07:00
Marten Seemann
61ca8e89fe
http3: ignore context after response when using DontCloseRequestStream ( #3473 )
2022-07-24 11:58:12 -07:00
Matt Robenolt
98b25879e5
dedupe Alt-Svc header values ( #3461 )
2022-06-28 00:58:44 -07:00
Marten Seemann
6fbc6d951a
fix flaky HTTP/3 request body test ( #3447 )
2022-06-09 11:32:20 -07:00
Nuno Diegues
4c96cf75bf
make the keep alive interval configurable ( #3444 )
...
* Make keep alive configurable
* Fix unit tests
2022-06-09 08:31:37 -07:00
Marten Seemann
619fa9fb44
Merge pull request #3432 from lucas-clemente/quicv2
...
implement QUIC v2
2022-06-09 15:52:40 +02:00
Marten Seemann
3eed9d1104
don't close the stream if it was hijacked
2022-06-09 10:51:23 +02:00
Marten Seemann
6fa7494c2f
add a http3.HTTPStreamer, allowing users to take over the HTTP/3 stream
2022-06-09 10:51:23 +02:00
Marten Seemann
5fd6fa7cae
remove the StreamID method on the HTTP/3 response writer
2022-06-09 10:51:23 +02:00
Marten Seemann
04d46526c7
refactor HTTP/3 stream handling to use a dedicated stream
...
Reading from and writing onto this stream applies HTTP/3 DATA framing.
2022-06-09 10:51:23 +02:00
Marten Seemann
ccf897e519
remove the http3.DataStreamer ( #3435 )
2022-06-09 01:17:43 -07: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
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
c5ee49662d
set the correct HTTP/3 ALPN for QUIC v2
2022-05-26 13:40:42 +02: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
Marten Seemann
5dedb7e12c
fix parsing of request path for Extended CONNECT requests ( #3388 )
2022-04-25 04:20:58 -07:00
Marten Seemann
21eda36971
fix deadlock on concurrent http3.Server.Serve and Close calls ( #3387 )
2022-04-25 04:10:39 -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
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
d1498c360e
add support for serializing Extended CONNECT requests ( #3360 )
2022-04-02 11:55:42 -07:00
Marten Seemann
f68b38635a
rename occurrences of session in HTTP/3 server and client
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
e71c236232
rename the Session to Connection
2022-03-27 11:27:23 +01:00