gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libmicrohttpd] 02/04: HTTPS tests: added new backend identification fun


From: gnunet
Subject: [libmicrohttpd] 02/04: HTTPS tests: added new backend identification functions
Date: Thu, 10 Jun 2021 20:26:09 +0200

This is an automated email from the git hooks/post-receive script.

karlson2k pushed a commit to branch master
in repository libmicrohttpd.

commit 6c84bcf3fe605365c9cb665445145fcfe279762a
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Thu Jun 10 20:40:52 2021 +0300

    HTTPS tests: added new backend identification functions
---
 src/testcurl/https/tls_test_common.c | 103 ++++++++++++++++++++++++++++++++++-
 src/testcurl/https/tls_test_common.h |  11 ++++
 2 files changed, 112 insertions(+), 2 deletions(-)

diff --git a/src/testcurl/https/tls_test_common.c 
b/src/testcurl/https/tls_test_common.c
index 7027e78f..d082c9a1 100644
--- a/src/testcurl/https/tls_test_common.c
+++ b/src/testcurl/https/tls_test_common.c
@@ -604,6 +604,100 @@ test_wrap (const char *test_name, int
 }
 
 
+static int inited_tls_is_gnutls = 0;
+static int inited_tls_is_openssl = 0;
+
+int
+curl_tls_is_gnutls (void)
+{
+  const char *tlslib;
+  if (inited_tls_is_gnutls)
+    return 1;
+  if (inited_tls_is_openssl)
+    return 0;
+
+  tlslib = curl_version_info (CURLVERSION_NOW)->ssl_version;
+  if (NULL == tlslib)
+    return 0;
+  if (0 == strncmp (tlslib, "GnuTLS/", 7))
+    return 1;
+
+  /* Multi-backends handled during initialization by setting variable */
+  return 0;
+}
+
+
+int
+curl_tls_is_nss (void)
+{
+  const char *tlslib;
+  if (inited_tls_is_gnutls)
+    return 0;
+  if (inited_tls_is_openssl)
+    return 0;
+
+  tlslib = curl_version_info (CURLVERSION_NOW)->ssl_version;
+  if (NULL == tlslib)
+    return 0;
+  if (0 == strncmp (tlslib, "NSS/", 4))
+    return 1;
+
+  /* Handle multi-backends with selected backend */
+  if (NULL != strstr (tlslib," NSS/"))
+    return 1;
+
+  return 0;
+}
+
+
+int
+curl_tls_is_schannel (void)
+{
+  const char *tlslib;
+  if (inited_tls_is_gnutls)
+    return 0;
+  if (inited_tls_is_openssl)
+    return 0;
+
+  tlslib = curl_version_info (CURLVERSION_NOW)->ssl_version;
+  if (NULL == tlslib)
+    return 0;
+  if ((0 == strncmp (tlslib, "Schannel", 8)) || (0 == strncmp (tlslib, 
"WinSSL",
+                                                               6)))
+    return 1;
+
+  /* Handle multi-backends with selected backend */
+  if ((NULL != strstr (tlslib," Schannel")) || (NULL != strstr (tlslib,
+                                                                " WinSSL")))
+    return 1;
+
+  return 0;
+}
+
+
+int
+curl_tls_is_sectransport (void)
+{
+  const char *tlslib;
+  if (inited_tls_is_gnutls)
+    return 0;
+  if (inited_tls_is_openssl)
+    return 0;
+
+  tlslib = curl_version_info (CURLVERSION_NOW)->ssl_version;
+  if (NULL == tlslib)
+    return 0;
+  if (0 == strncmp (tlslib, "SecureTransport", 15))
+    return 1;
+
+  /* Handle multi-backends with selected backend */
+  if (NULL != strstr (tlslib," SecureTransport"))
+    return 1;
+
+  return 0;
+}
+
+
 int
 testsuite_curl_global_init (void)
 {
@@ -611,10 +705,15 @@ testsuite_curl_global_init (void)
 #if LIBCURL_VERSION_NUM >= 0x073800
   if (CURLSSLSET_OK != curl_global_sslset (CURLSSLBACKEND_GNUTLS, NULL, NULL))
   {
-    if (CURLSSLSET_TOO_LATE == curl_global_sslset (CURLSSLBACKEND_OPENSSL, 
NULL,
-                                                   NULL))
+    CURLsslset e;
+    e = curl_global_sslset (CURLSSLBACKEND_OPENSSL, NULL, NULL);
+    if (CURLSSLSET_TOO_LATE == e)
       fprintf (stderr, "WARNING: libcurl was already initialised.\n");
+    else if (CURLSSLSET_OK == e)
+      inited_tls_is_openssl = 1;
   }
+  else
+    inited_tls_is_gnutls = 1;
 #endif /* LIBCURL_VERSION_NUM >= 0x07380 */
   res = curl_global_init (CURL_GLOBAL_ALL);
   if (CURLE_OK != res)
diff --git a/src/testcurl/https/tls_test_common.h 
b/src/testcurl/https/tls_test_common.h
index fd2a47b1..6362bb14 100644
--- a/src/testcurl/https/tls_test_common.h
+++ b/src/testcurl/https/tls_test_common.h
@@ -77,6 +77,17 @@ curl_check_version (const char *req_version, ...);
 int
 curl_uses_nss_ssl (void);
 
+int
+curl_tls_is_gnutls (void);
+
+int
+curl_tls_is_nss (void);
+
+int
+curl_tls_is_schannel (void);
+
+int
+curl_tls_is_sectransport (void);
 
 FILE *
 setup_ca_cert (void);

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]