Marten Seemann
adc13be540
implement a memory-optimized time.Time replacement ( #5334 )
...
* implement a memory-optimized time.Time replacement
* monotime: properly handle systems with bad timer resolution (Windows)
* monotime: simplify Since
2025-09-14 08:12:10 +02:00
Marten Seemann
2082d2c6b9
move connection tracking into the Transport ( #5113 )
2025-05-05 05:05:17 +02:00
Marten Seemann
9b3ff059fc
delete closed connections after 3 PTOs ( #5117 )
...
In most cases, this should be earlier than the current
timeout value of 5s.
2025-05-04 12:51:39 +02:00
Marten Seemann
4d39fc31c5
simplify tracking of Transports for connection migration ( #5111 )
...
No functional change expected.
2025-05-03 16:06:23 +02:00
Marten Seemann
97e7657df5
delete retired connection IDs after 3 PTOs ( #5109 )
2025-05-03 14:24:40 +02:00
Marten Seemann
24acc54ef1
add support for connection migration ( #4960 )
2025-03-12 06:11:11 +01:00
Marten Seemann
0a2c2f0a82
extend connection ID generator to interact with multiple Transports ( #4974 )
...
This is needed when multiple paths are in use.
2025-03-12 05:47:58 +01:00
Marten Seemann
eb2f986a06
refactor connection ID generator callback handling ( #4961 )
2025-02-22 12:06:01 +01:00
Marten Seemann
62947d97f5
simplify generation of stateless reset tokens ( #4858 )
2025-01-11 17:52:59 +08:00
Marten Seemann
c786a46f42
remove unused perspective arg from packetHandlerMap.ReplaceWithClosed ( #4330 )
2024-02-10 19:27:51 -08:00
Marten Seemann
22411e16d5
utils: switch to standard library min and max functions ( #4218 )
...
These functions were added in Go 1.21.
2023-12-27 21:19:13 -08: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
5c7d120b8f
remove unused version parameter form the connIDGenerator
2023-01-18 20:50:17 +13:00
Marten Seemann
4cbb4f8114
remove ConnectionID.Equal function
...
Connection IDs can now be compared with ==.
2022-08-29 11:30:32 +03:00
Marten Seemann
1aced95d41
use an array instead of a byte slice for Connection IDs
2022-08-29 11:30:31 +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
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
43bde14cf7
implement generic Min and Max functions
2022-08-10 14:59:05 +02:00
Marten Seemann
b2857b5442
remove the RetireBugBackwardsCompatibilityMode
2021-06-26 15:49:02 -07:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
10217a6f3b
fix issuing of connection IDs when dialing a 0-RTT connections
...
When dialing a 0-RTT connection, the client first restores the transport
parameters from the original connection, and then applies the transport
parameters provided by the server on the new connections.
2021-03-03 14:10:06 +08:00
Marten Seemann
e1f56127df
only use the conn ID backwards compatibility mode with draft-29
2020-10-22 20:33:17 +07:00
Marten Seemann
a1bb39d6ab
introduce a protocol.StatelessResetToken
2020-07-10 19:55:20 +07:00
Marten Seemann
ce5ddc050c
add a flag to disable conn ID generation and the check for retired conn IDs
2020-07-09 10:40:56 +07:00
Marten Seemann
33fc464bac
use PROTOCOL_VIOLATION for invalid RETIRE_CONNECTION_ID frames
2020-07-08 12:24:15 +07:00
Marten Seemann
25db2166dd
enforce that a conn ID is not retired in a packet that uses that conn ID
2020-07-08 12:06:57 +07:00
Marten Seemann
6d61dccc2f
rename the constructors for the various qerr.Error flavors
2020-03-21 10:53:03 +07:00
Marten Seemann
634169b061
don't return a stateless reset token when adding a new connection ID
...
Both server and client didn't make use of the token. It was only used by
the connIDGenerator.
2020-02-03 17:31:47 +01:00
Marten Seemann
3f6030fdb3
count the connection ID used during the handshake towards the limit
2019-12-03 18:25:15 +07:00
Marten Seemann
5a834851a8
route retransmissions of the client's Initial to the right session
2019-11-26 17:01:21 +07:00
Marten Seemann
5d0d0d0679
implement replacing with a closed session for all active connection IDs
2019-11-05 11:00:07 +07:00
Marten Seemann
f948165824
implement removing of all active connection IDs
2019-11-05 11:00:07 +07:00
Marten Seemann
121795977d
implement issuing and retiring of connection IDs
2019-11-05 11:00:07 +07:00