diff --git a/doc/dox_comments/header_files/ssl.h b/doc/dox_comments/header_files/ssl.h index a1f498117..203fd15c2 100644 --- a/doc/dox_comments/header_files/ssl.h +++ b/doc/dox_comments/header_files/ssl.h @@ -14085,3 +14085,12 @@ int wolfSSL_RSA_sign_generic_padding(int type, const unsigned char* m, unsigned int mLen, unsigned char* sigRet, unsigned int* sigLen, WOLFSSL_RSA* rsa, int flag, int padding); +/*! + +\brief checks if DTLSv1.3 stack has some messages sent but not yet acknowledged + by the other peer + + \return 1 if there are pending messages, 0 otherwise + \param ssl A WOLFSSL object pointer +*/ +int wolfSSL_dtls13_has_pending_msg(WOLFSSL *ssl); diff --git a/src/dtls13.c b/src/dtls13.c index 2e7947481..a08812826 100644 --- a/src/dtls13.c +++ b/src/dtls13.c @@ -2420,4 +2420,9 @@ int Dtls13RtxProcessingCertificate(WOLFSSL* ssl, byte* input, word32 inputSize) return 0; } +int wolfSSL_dtls13_has_pending_msg(WOLFSSL* ssl) +{ + return ssl->dtls13Rtx.rtxRecords != NULL; +} + #endif /* WOLFSSL_DTLS13 */ diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index d419339fa..829fc4745 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -869,6 +869,7 @@ WOLFSSL_API WOLFSSL_METHOD *wolfSSLv23_client_method_ex(void* heap); #ifdef WOLFSSL_DTLS13 WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_3_client_method_ex(void* heap); WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_3_server_method_ex(void* heap); + WOLFSSL_API int wolfSSL_dtls13_has_pending_msg(WOLFSSL *ssl); #endif #endif