From 66d9e6f4058a925cd1c76c1ffa5f9b6d2e342d59 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 7 May 2022 10:50:12 +0800 Subject: [PATCH] refactor next state of client hello Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 3c57f81fad..baf8c61fea 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -743,10 +743,21 @@ static int ssl_tls13_process_client_hello( mbedtls_ssl_context *ssl ) parse_client_hello_ret = ret; MBEDTLS_SSL_PROC_CHK( ssl_tls13_postprocess_client_hello( ssl ) ); - if( parse_client_hello_ret == SSL_CLIENT_HELLO_OK ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_HELLO ); - else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HELLO_RETRY_REQUEST ); + switch( parse_client_hello_ret ) + { + case SSL_CLIENT_HELLO_OK: + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_HELLO ); + break; + + case SSL_CLIENT_HELLO_HRR_REQUIRED: + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HELLO_RETRY_REQUEST ); + break; + + default: + MBEDTLS_SSL_DEBUG_MSG( 2, ( "should never happen" ) ); + ret = parse_client_hello_ret; + break; + } cleanup: