Pārlūkot izejas kodu

Merge pull request #7430 from jpbland1/check-session-setup

Add `wolfSSL_SessionIsSetup`
Daniel Pouzzner 1 nedēļu atpakaļ
vecāks
revīzija
97110700b2
3 mainītis faili ar 9 papildinājumiem un 0 dzēšanām
  1. 7 0
      src/ssl_sess.c
  2. 1 0
      tests/api.c
  3. 1 0
      wolfssl/ssl.h

+ 7 - 0
src/ssl_sess.c

@@ -283,6 +283,13 @@ WOLFSSL_SESSION* wolfSSL_get1_session(WOLFSSL* ssl)
     return sess;
 }
 
+/* session is a private struct, return if it is setup or not */
+WOLFSSL_API int wolfSSL_SessionIsSetup(WOLFSSL_SESSION* session)
+{
+    if (session != NULL)
+        return session->isSetup;
+    return 0;
+}
 
 /*
  * Sets the session object to use when establishing a TLS/SSL session using

+ 1 - 0
tests/api.c

@@ -47260,6 +47260,7 @@ static int test_wolfSSL_SESSION(void)
 
     ExpectPtrNE((sess = wolfSSL_get1_session(ssl)), NULL); /* ref count 1 */
     ExpectPtrNE((sess_copy = wolfSSL_get1_session(ssl)), NULL); /* ref count 2 */
+    ExpectIntEQ(wolfSSL_SessionIsSetup(sess), 1);
 #ifdef HAVE_EXT_CACHE
     ExpectPtrEq(sess, sess_copy); /* they should be the same pointer but without
                                    * HAVE_EXT_CACHE we get new objects each time */

+ 1 - 0
wolfssl/ssl.h

@@ -1696,6 +1696,7 @@ WOLFSSL_API const char*  wolfSSL_SESSION_CIPHER_get_name(const WOLFSSL_SESSION*
 WOLFSSL_API const char*  wolfSSL_get_cipher(WOLFSSL* ssl);
 WOLFSSL_API void wolfSSL_sk_CIPHER_free(WOLF_STACK_OF(WOLFSSL_CIPHER)* sk);
 WOLFSSL_API WOLFSSL_SESSION* wolfSSL_get1_session(WOLFSSL* ssl);
+WOLFSSL_API int wolfSSL_SessionIsSetup(WOLFSSL_SESSION* session);
 
 WOLFSSL_API WOLFSSL_X509* wolfSSL_X509_new(void);
 WOLFSSL_API WOLFSSL_X509* wolfSSL_X509_new_ex(void* heap);