store the RTT in the token, not in the session ticket (#5065)

* remove RTT from session ticket

* save RTT in token

* use mus as rtt unit in token

* move RTT from session state to token on client side

* Rename the rtt variables

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* Update internal/handshake/token_generator.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* Update token_generator.go

* Update connection.go

* Update token_generator.go

* correct slice  access in fuzz.go

* rearrange connection constructor parameters

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
This commit is contained in:
Ameame
2025-05-16 18:25:58 +08:00
committed by GitHub
parent eb8547ca73
commit 8ef0a71581
13 changed files with 67 additions and 140 deletions

View File

@@ -49,6 +49,7 @@ type serverOpts struct {
*tls.Config,
*handshake.TokenGenerator,
bool, /* client address validated by an address validation token */
time.Duration,
*logging.ConnectionTracer,
utils.Logger,
protocol.Version,
@@ -514,7 +515,7 @@ func TestServerTokenValidation(t *testing.T) {
})
conn := newUDPConnLocalhost(t)
token, err := tg.NewToken(conn.LocalAddr())
token, err := tg.NewToken(conn.LocalAddr(), 10*time.Millisecond)
require.NoError(t, err)
time.Sleep(3 * time.Millisecond) // make sure the token is expired
testServerTokenValidation(t, server, mockTracer, conn, token, false, false, true)
@@ -531,7 +532,7 @@ func TestServerTokenValidation(t *testing.T) {
})
conn := newUDPConnLocalhost(t)
token, err := tg.NewToken(conn.LocalAddr())
token, err := tg.NewToken(conn.LocalAddr(), 100*time.Millisecond)
require.NoError(t, err)
time.Sleep(3 * time.Millisecond) // make sure the token is expired
testServerTokenValidation(t, server, mockTracer, conn, token, false, false, true)
@@ -638,6 +639,7 @@ func (r *connConstructorRecorder) NewConn(
_ *tls.Config,
_ *handshake.TokenGenerator,
_ bool,
_ time.Duration,
_ *logging.ConnectionTracer,
_ utils.Logger,
_ protocol.Version,
@@ -925,6 +927,7 @@ func TestServerReceiveQueue(t *testing.T) {
_ *tls.Config,
_ *handshake.TokenGenerator,
_ bool,
_ time.Duration,
_ *logging.ConnectionTracer,
_ utils.Logger,
_ protocol.Version,