Commit Graph

5743 Commits

Author SHA1 Message Date
Marten Seemann
f2fa98c0dd implement a more intuitive address validation API 2022-08-12 13:13:29 +03:00
Marten Seemann
556a6e2f99 Merge pull request #3489 from lucas-clemente/generic-streams-map-incoming
use a generic streams map for incoming streams
2022-08-12 13:05:53 +04:00
Abirdcfly
dbb7a215a0 fix unreachable code after log.Fatal in fuzzing corpus generator (#3496)
Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Signed-off-by: Abirdcfly <fp544037857@gmail.com>
2022-08-12 02:02:15 -07:00
Marten Seemann
b372d02ac4 remove genny dependency 2022-08-12 11:18:57 +03:00
Marten Seemann
bea5de0221 Merge pull request #3483 from lucas-clemente/generic-min-max
use generic Min and Max functions
2022-08-12 12:09:30 +04:00
Marten Seemann
5473b3ffd0 add QPACK (RFC 9204) to the list of supported RFCs (#3485) 2022-08-11 07:35:19 -07:00
Marten Seemann
80fd1b57c8 add a function to distinguish between long and short header packets (#3498) 2022-08-11 07:35:01 -07:00
Marten Seemann
621e9d4642 use a generic streams map for incoming streams 2022-08-11 18:31:45 +04:00
Marten Seemann
bebff462c8 use a generic streams map for outgoing streams (#3488) 2022-08-11 05:14:52 -07:00
Marten Seemann
b6e2608c15 update the Go 1.19 qtls to v0.1.0 (#3490) 2022-08-10 09:53:32 -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
7ebe1430ef use a generic linked list (#3487) 2022-08-10 09:50:21 -07:00
Marten Seemann
43bde14cf7 implement generic Min and Max functions 2022-08-10 14:59:05 +02:00
Marten Seemann
424325af58 rename utils.Min to utils.MinInt 2022-08-10 14:59:05 +02:00
Marten Seemann
2ea21b7b16 rename utils.Max to utils.MaxInt 2022-08-10 14:59:05 +02:00
Marten Seemann
ea9de26ed5 drop support for Go 1.16 and 1.17 (#3482) 2022-08-10 03:42:14 -07:00
Toby
d5efd340c7 optimize FirstOutstanding in the sent packet history (#3467)
* optimize FirstOutstanding

* fix variable naming

* bug fix

* minor code improvements

* add a test to make sure that `Iterate` iterates in the right order

* add comment
2022-07-24 12:50:41 -07:00
Marten Seemann
56a24f3e4c update supported RFCs in README (#3456) v0.28.1 2022-07-24 11:58:43 -07:00
Marten Seemann
61ca8e89fe http3: ignore context after response when using DontCloseRequestStream (#3473) 2022-07-24 11:58:12 -07:00
Marten Seemann
f29dd273b4 update for Go 1.19beta1 (#3460) v0.28.0 2022-06-28 01:12:44 -07:00
Matt Robenolt
98b25879e5 dedupe Alt-Svc header values (#3461) 2022-06-28 00:58:44 -07:00
Nuno Diegues
706a482340 only set DF for sockets that can handle it (#3448)
Fixes #3445
2022-06-19 10:38:34 -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
9e1dfff3f0 Merge pull request #3437 from lucas-clemente/http-stream
allow HTTP clients and servers to take over the request stream
2022-06-09 15:51:21 +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
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
c5ee49662d set the correct HTTP/3 ALPN for QUIC v2 2022-05-26 13:40:42 +02:00
Marten Seemann
b2deeceafb export quic.Version2 2022-05-26 12:57:46 +02:00
Marten Seemann
f3744f6535 implement parsing and writing of QUIC v2 packet headers 2022-05-26 12:57:45 +02:00
Marten Seemann
909a3a9093 remove unneeded version constant in wire tests 2022-05-25 16:12:11 +02:00
Marten Seemann
f10d4bd8f7 add key derivation paths for QUIC v2 2022-05-25 16:12:09 +02:00
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