summaryrefslogtreecommitdiffstats
path: root/ssl/statem/statem_srvr.c
diff options
context:
space:
mode:
Diffstat (limited to 'ssl/statem/statem_srvr.c')
-rw-r--r--ssl/statem/statem_srvr.c17
1 files changed, 17 insertions, 0 deletions
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;