Marten Seemann
b659414495
use a single Go routine to send copies of CONNECTION_CLOSE packets
2022-08-21 15:41:47 +03:00
Marten Seemann
c3ab9c4ea9
replace all connection IDs at the same time when connection is closed
2022-08-21 14:09:49 +03:00
Marten Seemann
635dc90475
use bits.OnesCount to determine if a number is a power of two
...
This should be 3-4x faster than the current implementation.
2022-08-21 13:09:57 +03:00
Marten Seemann
feb94286a5
move the 0-RTT queue to a separate file
2022-08-21 12:46:40 +03:00
Marten Seemann
19c6a1b252
use type assertions to identify 0-RTT queues in packet handler map
2022-08-21 12:44:40 +03:00
fanweixiao
57650fca7a
add YoMo to list of projects in README ( #3513 )
2022-08-21 02:05:11 -07:00
mojatter
dd521c0573
http3: fix listening on both QUIC and TCP ( #3465 )
2022-08-20 08:56:28 -07:00
Benedikt Spies
7da024da5a
Disable anti-amplification limit by address validation token ( #3326 )
2022-08-20 08:02:17 -07:00
Marten Seemann
8c0c481da1
fix typo in README
2022-08-14 01:38:58 -07:00
Marten Seemann
9957668d43
Merge pull request #3501 from lucas-clemente/new-address-validation-api
...
implement a new API to let servers control client address verification
2022-08-13 17:00:01 +02:00
Marten Seemann
bbfb7bd493
disable address validation by default
...
We should provide safe defaults. Since we implement the 3x amplification
limit, disabling address validation is not unsafe, and will save 1 RTT
for every handshake for applications that don't explicitely configure
Retries.
2022-08-13 17:42:46 +03:00
Marten Seemann
7fde609eef
make sure RunHandshake has returned before closing, improve MITM tests
2022-08-13 17:42:45 +03:00
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