This is an automated email from the ASF dual-hosted git repository.

bneradt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 21080f353d Detect SSL_CTX_set_keylog_callback in CMake build (#9928)
21080f353d is described below

commit 21080f353d3639f6ae2ec59e0612159f2d61574d
Author: JosiahWI <[email protected]>
AuthorDate: Thu Jun 29 17:02:14 2023 -0500

    Detect SSL_CTX_set_keylog_callback in CMake build (#9928)
    
    This looks for the symbol SSL_CTX_set_keylog_callback declared in ssl.h and 
defined in libssl.so. It defines the TS_HAS_TLS_KEYLOGGING appropriately so 
that we can run autests on TLS features, since the autests assume that TLS 
keylogging is enabled.
---
 CMakeLists.txt                       | 20 ++++++++++++++++----
 include/tscore/ink_config.h.cmake.in |  1 +
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b3f5d1ac74..84b295d6b1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -216,8 +216,6 @@ check_symbol_exists(IN6_IS_ADDR_UNSPECIFIED "netinet/in.h" 
TS_HAS_IN6_IS_ADDR_UN
 check_symbol_exists(IP_TOS "netinet/ip.h" TS_HAS_IP_TOS)
 check_symbol_exists(SO_MARK "sys/socket.h" TS_HAS_SO_MARK)
 check_symbol_exists(SO_PEERCRED "sys/socket.h" TS_HAS_SO_PEERCRED)
-check_symbol_exists(TLS1_3_VERSION "${OPENSSL_INCLUDE_DIR}/openssl/ssl.h" 
TS_USE_TLS13)
-check_symbol_exists(OPENSSL_NO_TLS1_3 "${OPENSSL_INCLUDE_DIR}/openssl/ssl.h" 
TS_NO_USE_TLS13)
 if(TS_NO_USE_TLS13)
     set(TS_USE_TLS13 FALSE CACHE)
 endif()
@@ -248,7 +246,10 @@ endif(HAVE_LIBAIO AND USE_LIBAIO)
 
 # Check ssl functionality
 list(APPEND CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
-list(APPEND CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
+list(APPEND CMAKE_REQUIRED_LIBRARIES
+    ${OPENSSL_SSL_LIBRARY}
+    ${OPENSSL_CRYPTO_LIBRARY}
+)
 check_symbol_exists(BIO_meth_new "openssl/bio.h" HAVE_BIO_METH_NEW)
 check_symbol_exists(BIO_set_data "openssl/bio.h" HAVE_BIO_SET_DATA)
 check_symbol_exists(BIO_get_data "openssl/bio.h" HAVE_BIO_GET_DATA)
@@ -257,7 +258,18 @@ check_symbol_exists(BIO_meth_get_ctrl "openssl/bio.h" 
HAVE_BIO_METH_GET_CTRL)
 check_symbol_exists(BIO_meth_get_create "openssl/bio.h" 
HAVE_BIO_METH_GET_CREATE)
 check_symbol_exists(BIO_meth_get_destroy "openssl/bio.h" 
HAVE_BIO_METH_GET_DESTROY)
 check_symbol_exists(DH_get_2048_256 "openssl/dh.h" TS_USE_GET_DH_2048_256)
-check_symbol_exists(SSL_CTX_set_tlsext_ticket_key_cb openssl/ssl.h 
HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_CB)
+check_symbol_exists(OPENSSL_NO_TLS_3 "openssl/ssl.h" TS_NO_USE_TLS12)
+check_symbol_exists(
+    SSL_CTX_set_keylog_callback
+    "openssl/ssl.h"
+    TS_HAS_TLS_KEYLOGGING
+)
+check_symbol_exists(
+    SSL_CTX_set_tlsext_ticket_key_cb
+    "openssl/ssl.h"
+    HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_CB
+)
+check_symbol_exists(TLS1_3_VERSION "openssl/ssl.h" TS_USE_TLS13)
 
 # Catch2 for tests
 set(CATCH_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/lib/catch2)
diff --git a/include/tscore/ink_config.h.cmake.in 
b/include/tscore/ink_config.h.cmake.in
index 9472d7f217..e6fa7da33c 100644
--- a/include/tscore/ink_config.h.cmake.in
+++ b/include/tscore/ink_config.h.cmake.in
@@ -73,6 +73,7 @@
 #cmakedefine01 HAVE_EVENTFD
 
 #cmakedefine01 HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_CB
+#cmakedefine01 TS_HAS_TLS_KEYLOGGING
 
 #cmakedefine HAVE_BIO_METH_NEW 1
 #cmakedefine HAVE_BIO_SET_DATA 1

Reply via email to