summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/handshake_helper.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/handshake_helper.c b/test/handshake_helper.c
index 8ad35ce311..509a8f6ede 100644
--- a/test/handshake_helper.c
+++ b/test/handshake_helper.c
@@ -764,6 +764,17 @@ static void do_reneg_setup_step(const SSL_TEST_CTX *test_ctx, PEER *peer)
int ret;
char buf;
+ if (peer->status == PEER_SUCCESS) {
+ /*
+ * We are a client that succeeded this step previously, but the server
+ * wanted to retry. Probably there is a no_renegotiation warning alert
+ * waiting for us. Attempt to continue the handshake.
+ */
+ peer->status = PEER_RETRY;
+ do_handshake_step(peer);
+ return;
+ }
+
TEST_check(peer->status == PEER_RETRY);
TEST_check(test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RENEG_SERVER
|| test_ctx->handshake_mode == SSL_TEST_HANDSHAKE_RENEG_CLIENT