diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c index 60e0bc7373..7e033ceb16 100644 --- a/ssl/statem/statem_srvr.c +++ b/ssl/statem/statem_srvr.c @@ -3716,6 +3716,23 @@ int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt) } age_add_u; if (SSL_IS_TLS13(s)) { + if (s->post_handshake_auth != SSL_PHA_EXT_RECEIVED) { + void (*cb) (const SSL *ssl, int type, int val) = NULL; + + /* + * This is the first session ticket we've sent. In the state + * machine we "cheated" and tacked this onto the end of the first + * handshake. From an info callback perspective this should appear + * like the start of a new handshake. + */ + if (s->info_callback != NULL) + cb = s->info_callback; + else if (s->ctx->info_callback != NULL) + cb = s->ctx->info_callback; + if (cb != NULL) + cb(s, SSL_CB_HANDSHAKE_START, 1); + } + if (!ssl_generate_session_id(s, s->session)) { /* SSLfatal() already called */ goto err;