Commit graph

38 commits

Author SHA1 Message Date
Marten Seemann
9971fedd42
use Transport.VerifySourceAddress to control the Retry Mechanism (#4362)
* use Transport.VerifySourceAddress to control the Retry Mechanism

This can be used to rate-limit handshakes originating from unverified
source addresses. Rate-limiting for handshakes can be implemented using
the GetConfigForClient callback on the Config.

* pass the remote address to Transport.VerifySourceAddress
2024-03-14 17:35:52 -07:00
Marten Seemann
a2cf43d75c
remove the RequireAddressValidation callback from the Config (#4253) 2024-01-22 21:24:07 -08:00
Marten Seemann
30f9c0139f
use typed atomics in integration tests (#4120)
* use typed atomic in integration tests

* use an atomic.Bool in hotswap test
2023-10-24 21:46:29 -07:00
Marten Seemann
1b64b13750 make Listener a struct, not an interface 2023-05-01 14:41:16 +02:00
Marten Seemann
aee7706d5d clean up dial functions
* add a context to all Dial functions
* remove the explicit Dial{*}Context functions
2023-05-01 13:59:54 +02:00
Marten Seemann
2b0a03a988 set the QUIC version for integration tests using a command line flag 2023-05-01 13:43:34 +02:00
Marten Seemann
4a2a5740b2
use larger range to draw greased value for post-quantum test from (#3780) 2023-04-19 08:26:55 -07:00
Marten Seemann
969b5dc131
add a handshake test for post-quantum-size ClientHellos (#3759)
Post-quantum ClientHellos typically are larger than 1 MTU and will
therefore need to be split across multiple packets.
2023-04-19 06:01:43 -07:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go (#3680) 2023-01-21 19:53:57 -08:00
Marten Seemann
423f5dcf6c
Merge pull request #3589 from lucas-clemente/update-ginkgo-v2
migrate to Ginkgo v2, remove benchmark test
2022-10-11 22:03:09 +03:00
Marten Seemann
192ae3437b
don't drop more than 10 consecutive packets in drop test (#3584) 2022-10-11 05:44:07 -07:00
Marten Seemann
870fbe7ab0 migrate to Ginkgo v2 2022-10-11 16:38:44 +04: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
f2fa98c0dd implement a more intuitive address validation API 2022-08-12 13:13:29 +03:00
Marten Seemann
fda9f72161 replace usages of session in variable names 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
68e468a3bc drop support for Go 1.15 2021-08-05 14:18:56 +02:00
Marten Seemann
595f6f814a introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout 2020-12-08 16:12:39 +07:00
Marten Seemann
47c3cd8bb4 send 5 kB of stream data in the handshake drop test 2020-11-17 13:34:01 +07:00
Marten Seemann
55a07c34ee add the exhaustive linter 2020-10-05 13:47:57 +07:00
Marten Seemann
309c578cb1 reduce the handshake timeout to two minutes in the handshake drop tests 2020-09-10 18:08:29 +07:00
Marten Seemann
ee24d3899e simplify the Tracer interface by combining the TracerFor... methods 2020-07-11 13:22:52 +07:00
Marten Seemann
e33f7d0fb9 add integration tests using a very long certificate chain
This will trigger the amplification protection.
2020-05-27 09:40:51 +07:00
Marten Seemann
a5b967a309 add a command line option to export qlogs from the integration tests 2020-03-26 20:37:08 +07:00
Marten Seemann
a93e544c94 remove Session.Close()
Session.Close() sends a transport-level error code. Applications should
not be able to call this function, but use CloseWithError() instead.
2020-01-26 17:41:53 +07:00
Marten Seemann
ba7434ce65 improve the integration tests that drops handshake packets 2019-12-18 19:18:44 +04:00
Marten Seemann
c8aed2861f add the scopelint linter 2019-09-17 13:44:05 +07:00
Marten Seemann
7827cd61bc pass the raw packet to the Drop- and Delay callbacks of the proxy 2019-07-01 14:46:58 +07:00
Marten Seemann
5550ba2c3b add a context to Session.Accept{Uni}Stream 2019-06-22 19:37:11 +08:00
Marten Seemann
12bce1caaa add a context to Listener.Accept 2019-06-22 19:36:52 +08:00
Marten Seemann
979ab75b3b require ALPN during the TLS handshake 2019-06-02 14:58:37 +08:00
Marten Seemann
2367ab35bb remove unneeded version parameter from proxy constructor 2019-01-05 12:36:52 +07:00
Marten Seemann
41ca178dcc don't run the handshake drop integration tests twice 2019-01-02 10:04:38 +07:00
Marten Seemann
4abcce6408 use a self-signed certificate for integration tests 2018-12-11 14:24:12 +06:30
Marten Seemann
13b4781d0f don't import the quic-clients for the self integration test 2018-11-02 16:01:16 +07:00
Marten Seemann
8b2992a243 split the Session.Close(error) in Close() and CloseWithError(error) 2018-07-06 15:51:35 +07:00
Marten Seemann
44cd1f1813 reduce the drop rate in the self drop tests from 1/4 to 1/5 2018-06-20 23:14:17 +07:00
Marten Seemann
c4c2fd96dc add integration tests with dropped packets during the handshake
The tests simulate three different application profiles:
1. the client speaks first (e.g. sends a request)
2. the server speaks first
3. nobody speaks (i.e. a preconnect)
2018-05-29 21:10:28 +08:00