diff --git a/src/ssl.c b/src/ssl.c index 120835167..35ad0483d 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -29505,7 +29505,13 @@ int wolfSSL_SSL_in_connect_init(WOLFSSL* ssl) if (ssl == NULL) return WOLFSSL_FAILURE; - return ssl->options.handShakeState == NULL_STATE; + if (ssl->options.side == WOLFSSL_CLIENT_END) { + return ssl->options.connectState > CONNECT_BEGIN && + ssl->options.connectState < SECOND_REPLY_DONE; + } + + return ssl->options.acceptState > ACCEPT_BEGIN && + ssl->options.acceptState < ACCEPT_THIRD_REPLY_DONE; } #ifndef NO_SESSION_CACHE