Commit Graph

1407 Commits

Author SHA1 Message Date
Marten Seemann
ecc8320c2c add a tracer function to trace sending of Version Negotiation packets 2022-08-29 10:58:33 +03:00
Marten Seemann
21b9ef03be add a type for arbitrary length Connection IDs, and parsing function
RFC 8999 allows Connection IDs of up to 255 bytes. Current QUIC versions
only use up to 20 bytes.
2022-08-29 10:58:33 +03:00
Marten Seemann
d7097d74f0 implement a function to parse the version number of a Long Header packet 2022-08-29 10:58:33 +03:00
Marten Seemann
ab6d664b43 rename frame.Write to frame.Append 2022-08-28 23:18:24 +03:00
Marten Seemann
3ca1001951 append to a byte slice instead of a bytes.Buffer when serializing frames 2022-08-28 23:18:06 +03:00
João Oliveirinha
66f6fe0b71 add support for providing a custom Connection ID generator via Config (#3452)
* Add support for providing a custom ConnectionID generator via Config

This work makes it possible for servers or clients to control how
ConnectionIDs are generated, which in turn will force peers in the
connection to use those ConnectionIDs as destination connection IDs  when sending packets.

This is useful for scenarios where we want to perform some kind
selection on the QUIC packets at the L4 level.

* add more doc

* refactor populate config to not use provided config

* add an integration test for custom connection ID generators

* fix linter warnings

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-08-24 04:06:16 -07:00
Benedikt Spies
7da024da5a Disable anti-amplification limit by address validation token (#3326) 2022-08-20 08:02:17 -07:00
Marten Seemann
f2fa98c0dd implement a more intuitive address validation API 2022-08-12 13:13:29 +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
80fd1b57c8 add a function to distinguish between long and short header packets (#3498) 2022-08-11 07:35:01 -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
f29dd273b4 update for Go 1.19beta1 (#3460) 2022-06-28 01:12:44 -07: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
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
Chao Fei
60bbe92194 remove error return value from ComposeVersionNegotiation (#3410) 2022-05-12 08:03:39 -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
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
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
Marten Seemann
4b17343631 rename the session to connection 2022-03-27 12:50:14 +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
Marten Seemann
08af9fc2c1 improve code coverage of random number generator test (#3358) 2022-03-25 09:37:37 +01:00
Marten Seemann
f9904c7c45 add a callback to block window increases to the connection flow controller 2022-01-14 12:03:30 +04:00
Marten Seemann
a98e60c28c fix some typos in documentation and tests 2022-01-14 11:23:14 +04:00
Marten Seemann
7d5a7b47cb remove unneeded calls to goimports when generating mocks 2022-01-09 10:11:21 +04:00
Benedikt Spies
63b7354a25 fix comment about congestionWindow value (#3310) 2022-01-03 05:20:37 -08:00
Marten Seemann
ba4d02017c add support for Go 1.18 2021-12-15 10:13:31 +04:00
Marten Seemann
59ea0daea1 run gofmt to add the new go:build tags 2021-09-14 18:37:41 +02:00
Marten Seemann
8ecbb05d44 Merge pull request #3247 from lucas-clemente/drop-go-115
drop support for Go 1.15
2021-08-05 19:50:30 +02:00
Marten Seemann
68e468a3bc drop support for Go 1.15 2021-08-05 14:18:56 +02:00
Marten Seemann
fbc30cd942 fix race when stream.Read and CancelRead are called concurrently 2021-07-29 13:41:40 +02:00
Marten Seemann
8906148682 Merge pull request #3230 from lucas-clemente/optimize-has-outstanding-crypto-packets
optimize hasOutstandingCryptoPackets in sentPacketHandler
2021-07-25 19:40:18 +02:00
Marten Seemann
61748d4d63 cancel the PTO timer when all Handshake packets are acknowledged 2021-07-13 14:05:00 -04:00
Marten Seemann
6279d6b556 optimize hasOutstandingCryptoPackets in sentPacketHandler 2021-07-13 11:56:21 -04:00
Marten Seemann
f51cc93770 drop support for QUIC draft version 32 and 34 2021-07-06 09:50:10 -07:00
Marten Seemann
876bc493cd Merge pull request #3213 from lucas-clemente/remove-retire-bug-compat-mode
remove the RetireBugBackwardsCompatibilityMode
2021-07-06 09:47:18 -07:00
Marten Seemann
2001ce97a5 Merge pull request #3212 from lucas-clemente/remove-outdated-ackhandler-test
remove outdated ackhandler test case
2021-07-06 09:40:25 -07:00
Marten Seemann
ae4937a3ed Merge pull request #3214 from lucas-clemente/remove-strip-greased-versions
remove unused StripGreasedVersions function
2021-07-06 09:39:53 -07:00