Marten Seemann
30e01b9524
use the transport tracer in integration tests
2024-03-09 19:32:15 +09:30
Marten Seemann
a2cf43d75c
remove the RequireAddressValidation callback from the Config ( #4253 )
2024-01-22 21:24:07 -08:00
Marten Seemann
892851eb8c
add Transport config options to limit the number of handshakes ( #4248 )
...
* add Transport config options to limit the number of handshakes
* fix accounting for failed handshakes
* increase handshake limits, improve documentation
2024-01-22 21:04:25 -08:00
Marten Seemann
594440b04c
don't remove closed connections from the server's accept queue ( #4245 )
2024-01-18 22:45:38 -08:00
Marten Seemann
cb1775a08a
send out the CONNECTION_REFUSED error when refusing a connection ( #4250 )
...
So far, we used Connection.destroy, which destroys a connection without
sending out a CONNECTION_CLOSE frame. This is useful (for example) when
receiving a stateless reset, but it's not what we want when the server
refuses an incoming connection. In this case, we want to send out a
packet with a CONNECTION_CLOSE frame to inform the client that the
connection attempt is being rejected.
2024-01-18 22:29:22 -08:00
Marten Seemann
b3eb375bc1
remove shutdown method on the Connection ( #4249 )
...
There's no need to have a dedicated shutdown method, as the use case
(shutting down an outgoing connection attempt on context cancellation)
can be achieved by using Connection.destroy.
2024-01-18 22:06:04 -08:00
Marten Seemann
dda63b90eb
don't close established connections on Listener.Close, when using a Transport ( #4072 )
...
* don't close established connections on Listener.Close
* only close once
2023-10-26 23:10:13 -07:00
Marten Seemann
55eebd49ff
return the cancellation cause for cancelled dials ( #4078 )
2023-09-16 05:37:58 -07:00
Marten Seemann
abfe1ef548
remove Config.MaxRetryTokenAge, set it to the handshake timeout ( #4064 )
...
There is no good reason to manually set the validity period for Retry
tokens. Retry tokens are only valid on a single connection during the
handshake, so it makes sense to limit their validity to the configured
handshake timeout.
2023-09-10 13:53:12 +07:00
Marten Seemann
501cc21c4b
expose crypto/tls errors on the TransportError ( #4015 )
2023-08-18 03:01:49 -07:00
Marten Seemann
83c00a574d
ci: also run integration tests on Windows and macOS ( #3987 )
2023-08-16 07:21:48 -07:00
Marten Seemann
95ab7bdc9a
add tls.ClientHelloInfo.Conn for recursive GetConfigForClient calls ( #4016 )
2023-08-05 13:00:11 -07:00
Marten Seemann
18d3846d4f
set a net.Conn for tls.ClientHelloInfo.Conn used by GetCertificate ( #4014 )
2023-08-03 20:33:19 -04:00
Marten Seemann
f3a0ce1599
set a net.Conn with the correct addresses on the tls.ClientHelloInfo ( #4001 )
2023-07-31 13:32:10 -07:00
Marten Seemann
3d89e545d3
use the new crypto/tls QUIC Transport ( #3860 )
2023-07-01 11:15:00 -07:00
Marten Seemann
bc7cb706c5
add a GetConfigForClient callback to the Config
2023-05-02 15:56:49 +02:00
Marten Seemann
ba942715db
remove ConnectionIDLength and ConnectionIDGenerator from the Config
2023-05-02 15:56:49 +02:00
Marten Seemann
8189e75be6
implement the Transport
2023-05-02 15:56:48 +02: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
d683b841c4
remove the host parameter from all dial 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
0dbe595d9f
move the version negotiation tests to a separate package
2023-05-01 13:42:30 +02:00
Marten Seemann
23f4565108
qtls: don't set the tls.Config.CipherSuites for cipher suite tests ( #3726 )
...
* qtls: don't set the tls.Config.CipherSuites for cipher suite tests
* use qtls versions that don't allow setting of tls.Config.CipherSuites
2023-03-26 06:56:41 -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
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
53412e9ba3
trace arbitrary length Connection IDs for Version Negotiation packets
2022-08-29 10:58:33 +03:00
Marten Seemann
cd87a64e1e
use the logging.Null{Connection}Tracer in integration tests
2022-08-27 13:16:40 +03: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
53be3ee500
don't send CONNECTION_CLOSE if error occurred before sending anything
2022-05-20 12:27:00 +02: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
42b61729bd
expose the TransportError and the ApplicationError
2021-05-01 09:38:49 +07:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
e7c4e756ad
trace and qlog version selection / negotiation
2021-04-19 11:38:10 +07:00
Marten Seemann
67503f9d41
fix flaky accept queue integration test
2021-03-05 11:55:45 +08:00
Marten Seemann
4096eeaf92
make the certificate verificiation integration tests more explicit
2021-02-15 11:01:17 +08:00
Marten Seemann
356c69944e
return a quic.ConnectionState from Session.ConnectionState()
2020-12-09 15:31:23 +07:00
Marten Seemann
8752576f26
run gofumpt, enable the gofumpt linter
2020-10-26 09:33:35 +07:00
Marten Seemann
77f7476bf7
include the error code in the string for CRYPTO_ERRORs
2020-09-25 20:23:05 +07:00
Marten Seemann
125318d9c9
add support for Go 1.15
2020-08-20 13:33:33 +07:00
Marten Seemann
ee24d3899e
simplify the Tracer interface by combining the TracerFor... methods
2020-07-11 13:22:52 +07:00
Marten Seemann
b928ad7e4f
fix flaky INVALID_TOKEN integration test
2020-06-18 09:55:24 +07:00
Marten Seemann
2e9b92ab69
rename the SERVER_BUSY error to CONNECTION_REFUSED
2020-06-10 12:13:40 +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
e57caf0bae
send an INVALID_TOKEN error when receiving an invalid token
2020-02-25 19:43:57 +07:00
Marten Seemann
f91dfda8c3
make the TLS cipher suites configurable
2020-02-01 15:58:40 +07:00