From 6fd44f977d87b403f6227f0062d7409a6c26340c Mon Sep 17 00:00:00 2001 From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com> Date: Sat, 14 Oct 2023 09:59:00 -0400 Subject: [PATCH] crypto/tls: change SendSessionTicket to take an options struct To allow for future evolution of the API, make QUICConn.SendSessionTicket take a QUICSessionTicketOptions rather than a single bool. For #60107 Change-Id: I798fd0feec5c7581e3c3574e2de99611c81df47f Reviewed-on: https://go-review.googlesource.com/c/go/+/514997 Reviewed-by: Roland Shoemaker Run-TryBot: Damien Neil TryBot-Result: Gopher Robot Reviewed-by: Marten Seemann --- quic.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/quic.go b/quic.go index 06c2e19..4f24fd2 100644 --- a/quic.go +++ b/quic.go @@ -247,10 +247,15 @@ func (q *QUICConn) HandleData(level QUICEncryptionLevel, data []byte) error { return nil } +type QUICSessionTicketOptions struct { + // EarlyData specifies whether the ticket may be used for 0-RTT. + EarlyData bool +} + // SendSessionTicket sends a session ticket to the client. // It produces connection events, which may be read with NextEvent. // Currently, it can only be called once. -func (q *QUICConn) SendSessionTicket(earlyData bool) error { +func (q *QUICConn) SendSessionTicket(opts QUICSessionTicketOptions) error { c := q.conn if !c.isHandshakeComplete.Load() { return quicError(errors.New("tls: SendSessionTicket called before handshake completed")) @@ -262,7 +267,7 @@ func (q *QUICConn) SendSessionTicket(earlyData bool) error { return quicError(errors.New("tls: SendSessionTicket called multiple times")) } q.sessionTicketSent = true - return quicError(c.sendSessionTicket(earlyData)) + return quicError(c.sendSessionTicket(opts.EarlyData)) } // ConnectionState returns basic TLS details about the connection.