Marten Seemann
ef2b87f5d5
detect stateless resets for zero-length connection IDs ( #5027 )
2025-04-11 15:23:53 +02:00
Marten Seemann
e76621f75a
register stateless reset tokens for connection IDs used on paths ( #5023 )
...
* register stateless reset tokens for connection IDs used on paths
* retire path stateless reset tokens on closing
2025-04-09 04:31:41 +02:00
Marten Seemann
84aba71c86
refactor connection ID manager to use a slice instead of a linked list ( #5022 )
...
* refactor connection ID manager to use a slice instead of a linked list
* add a benchmark test for the connection ID manager
2025-04-08 12:02:58 +02:00
Marten Seemann
7f5ea8a54d
implement a path manager to track the validation status of new paths ( #4938 )
...
The path manager is responsible for generating PATH_CHALLENGE frames and
matching them with PATH_RESPONSE frames.
2025-01-27 08:10:51 +01:00
Marten Seemann
e524d0c1ff
implement connection ID handling for path probe packets ( #4935 )
2025-01-27 04:06:08 +01:00
Marten Seemann
d41f9749d3
fix memory leak on connection ID rotation when closing connection ( #4852 )
...
* fix memory leak on connection ID rotation during CONNECTION_CLOSE
In rare instances, the connection ID manager might switch to a new
connection ID when sending the packet containing the CONNECTION_CLOSE
frame. The connection ID manager removes the active stateless reset
token from the packet handler map when it is closed, so we need to make
sure that this happens last, otherwise the packet handler will keep a
pointer to the closed connection indefinitely.
* defer
* panic on use of connIDManager after Close
2025-01-22 19:35:16 +08:00
Marten Seemann
150b955d06
reject NEW_CONNECTION_ID frames when using zero-length connection IDs ( #4878 )
2025-01-16 11:30:08 +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
4cbb4f8114
remove ConnectionID.Equal function
...
Connection IDs can now be compared with ==.
2022-08-29 11:30:32 +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
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
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
03fe636711
reduce memory footprint of the connIDManager
2021-02-18 09:58:34 +08:00
Marten Seemann
115fc28bbe
avoid initializing a math/rand.Rand in the connIDManager
...
math/rand.Source uses a lot of memory, as it keeps an array of 607
int64s as internal state.
2021-02-18 09:58:34 +08:00
Marten Seemann
05066ae877
immediately remove reset tokens when retiring a connection ID
2020-11-22 10:21:20 +07:00
Marten Seemann
80534c0944
wait until the handshake is complete before updating the connection ID
2020-11-02 16:21:38 +07:00
Marten Seemann
a1bb39d6ab
introduce a protocol.StatelessResetToken
2020-07-10 19:55:20 +07:00
Marten Seemann
0ef1b2f92e
pass around the stateless reset token directly, not pointers to it
...
Benchmarks show that it's actually faster to make a copy of this 16 byte
array than passing around a pointer to it.
2020-07-10 19:44:57 +07:00
Marten Seemann
34f0c93e88
don't retire the conn ID that's in use when receiving a retransmission
2020-07-06 17:54:00 +07:00
Marten Seemann
b0c1aed4d2
retire conn IDs with sequence numbers smaller than the currently active
2020-05-23 15:08:36 +07:00
Marten Seemann
eab5adc48c
use the connection ID from the preferred_address transport parameter
2020-03-08 15:13:38 +07:00
Marten Seemann
f35a32989c
enforce the active_connection_id_limit
2019-12-03 18:27:10 +07:00
Marten Seemann
f1fd07df59
retire delayed conn IDs arriving after a higher conn ID was retired
2019-11-24 10:12:02 +07:00
Marten Seemann
a53569839c
don't queue the currently active conn ID when receiving a duplicate
2019-11-24 09:35:14 +07:00
Marten Seemann
ef2e0309f3
Merge pull request #2206 from lucas-clemente/ignore-reordered-ncid-frames
...
retire reordered NEW_CONNECTION_IDs that were already retired
2019-11-08 17:06:08 +07:00
Marten Seemann
63aa38eefa
retire reordered NEW_CONNECTION_IDs that were already retired
2019-11-06 17:37:23 +07:00
Marten Seemann
2a8b038ca6
randomize the number of packets sent with the same connection ID
2019-11-05 16:16:58 +07:00
Marten Seemann
ccb777b834
retire the stateless reset token when the session is closed
2019-11-05 10:59:21 +07:00
Marten Seemann
011642e471
update the connection ID after sending 10000 packets
2019-11-05 10:59:21 +07:00
Marten Seemann
326279894b
retire stateless tokens when updating the connection ID
2019-11-05 10:59:21 +07:00
Marten Seemann
5203b026e3
use the connection ID manager to save the server's stateless reset token
2019-11-05 10:59:21 +07:00
Marten Seemann
772ffd3d20
use the connection ID manager to save the destination connection ID
2019-11-05 10:59:21 +07:00
Marten Seemann
8db230753f
retire old connection IDs when the peers sends us too many new ones
2019-11-05 10:59:21 +07:00
Marten Seemann
b9b44c60d3
implement forced retiring of connection IDs
2019-11-05 10:59:21 +07:00
Marten Seemann
031c1709e6
implement a basic store for new connection IDs
2019-11-05 10:59:21 +07:00