mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
Merge pull request #6093 from dgarske/fix_async
Fix issue with async and `WOLFSSL_CHECK_ALERT_ON_ERR`
This commit is contained in:
@ -19124,6 +19124,16 @@ int ProcessReplyEx(WOLFSSL* ssl, int allowSocketErr)
|
|||||||
return ssl->error;
|
return ssl->error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If checking alert on error (allowSocketErr == 1) do not try and
|
||||||
|
* process alerts for async or ocsp non blocking */
|
||||||
|
#if defined(WOLFSSL_CHECK_ALERT_ON_ERR) && \
|
||||||
|
(defined(WOLFSSL_ASYNC_CRYPT) || defined(WOLFSSL_NONBLOCK_OCSP))
|
||||||
|
if (allowSocketErr == 1 && \
|
||||||
|
(ssl->error == WC_PENDING_E || ssl->error == OCSP_WANT_READ)) {
|
||||||
|
return ssl->error;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WOLFSSL_DTLS) && defined(WOLFSSL_ASYNC_CRYPT)
|
#if defined(WOLFSSL_DTLS) && defined(WOLFSSL_ASYNC_CRYPT)
|
||||||
/* process any pending DTLS messages - this flow can happen with async */
|
/* process any pending DTLS messages - this flow can happen with async */
|
||||||
if (ssl->dtls_rx_msg_list != NULL) {
|
if (ssl->dtls_rx_msg_list != NULL) {
|
||||||
|
25
tests/api.c
25
tests/api.c
@ -5290,10 +5290,10 @@ static THREAD_RETURN WOLFSSL_THREAD test_server_nofail(void* args)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
|
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
|
||||||
if (sharedCtx && wolfSSL_use_certificate_file(ssl, svrCertFile,
|
if (sharedCtx && wolfSSL_use_certificate_file(ssl, certFile,
|
||||||
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
||||||
#else
|
#else
|
||||||
if (wolfSSL_use_certificate_file(ssl, svrCertFile,
|
if (wolfSSL_use_certificate_file(ssl, certFile,
|
||||||
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
||||||
#endif
|
#endif
|
||||||
/*err_sys("can't load server cert chain file, "
|
/*err_sys("can't load server cert chain file, "
|
||||||
@ -5301,10 +5301,10 @@ static THREAD_RETURN WOLFSSL_THREAD test_server_nofail(void* args)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
|
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
|
||||||
if (sharedCtx && wolfSSL_use_PrivateKey_file(ssl, svrKeyFile,
|
if (sharedCtx && wolfSSL_use_PrivateKey_file(ssl, keyFile,
|
||||||
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
||||||
#else
|
#else
|
||||||
if (wolfSSL_use_PrivateKey_file(ssl, svrKeyFile,
|
if (wolfSSL_use_PrivateKey_file(ssl, keyFile,
|
||||||
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
|
||||||
#endif
|
#endif
|
||||||
/*err_sys("can't load server key file, "
|
/*err_sys("can't load server key file, "
|
||||||
@ -62942,6 +62942,15 @@ void ApiTest(void)
|
|||||||
printf(" Begin API Tests\n");
|
printf(" Begin API Tests\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
|
/* we must perform init and cleanup if not all tests are running */
|
||||||
|
if (!testAll) {
|
||||||
|
#ifdef WOLFCRYPT_ONLY
|
||||||
|
wolfCrypt_Init();
|
||||||
|
#else
|
||||||
|
wolfSSL_Init();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < TEST_CASE_CNT; ++i) {
|
for (i = 0; i < TEST_CASE_CNT; ++i) {
|
||||||
/* When not testing all cases then skip if not marked for running. */
|
/* When not testing all cases then skip if not marked for running. */
|
||||||
if (!testAll && !testCases[i].run) {
|
if (!testAll && !testCases[i].run) {
|
||||||
@ -62983,7 +62992,13 @@ void ApiTest(void)
|
|||||||
wc_ecc_fp_free(); /* free per thread cache */
|
wc_ecc_fp_free(); /* free per thread cache */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wolfSSL_Cleanup();
|
if (!testAll) {
|
||||||
|
#ifdef WOLFCRYPT_ONLY
|
||||||
|
wolfCrypt_Cleanup();
|
||||||
|
#else
|
||||||
|
wolfSSL_Cleanup();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
(void)testDevId;
|
(void)testDevId;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user