summaryrefslogtreecommitdiff
path: root/src/lib/libssl/tls13_handshake.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/tls13_handshake.c')
-rw-r--r--src/lib/libssl/tls13_handshake.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/libssl/tls13_handshake.c b/src/lib/libssl/tls13_handshake.c
index 80ad7c0264..b3cecc77ef 100644
--- a/src/lib/libssl/tls13_handshake.c
+++ b/src/lib/libssl/tls13_handshake.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_handshake.c,v 1.63 2020/06/02 13:57:09 tb Exp $ */ 1/* $OpenBSD: tls13_handshake.c,v 1.64 2020/07/30 16:23:17 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2018-2019 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2018-2019 Theo Buehler <tb@openbsd.org>
4 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org>
@@ -343,6 +343,12 @@ tls13_handshake_perform(struct tls13_ctx *ctx)
343 const struct tls13_handshake_action *action; 343 const struct tls13_handshake_action *action;
344 int ret; 344 int ret;
345 345
346 if (!ctx->handshake_started) {
347 ctx->handshake_started = 1;
348 if (ctx->info_cb != NULL)
349 ctx->info_cb(ctx, TLS13_INFO_HANDSHAKE_STARTED, 1);
350 }
351
346 for (;;) { 352 for (;;) {
347 if ((action = tls13_handshake_active_action(ctx)) == NULL) 353 if ((action = tls13_handshake_active_action(ctx)) == NULL)
348 return TLS13_IO_FAILURE; 354 return TLS13_IO_FAILURE;
@@ -350,6 +356,9 @@ tls13_handshake_perform(struct tls13_ctx *ctx)
350 if (action->handshake_complete) { 356 if (action->handshake_complete) {
351 ctx->handshake_completed = 1; 357 ctx->handshake_completed = 1;
352 tls13_record_layer_handshake_completed(ctx->rl); 358 tls13_record_layer_handshake_completed(ctx->rl);
359 if (ctx->info_cb != NULL)
360 ctx->info_cb(ctx,
361 TLS13_INFO_HANDSHAKE_COMPLETED, 1);
353 return TLS13_IO_SUCCESS; 362 return TLS13_IO_SUCCESS;
354 } 363 }
355 364