Skip to content

Commit

Permalink
Fix build with libressl
Browse files Browse the repository at this point in the history
It got another feature of openssl implemented, which broke this
  • Loading branch information
DarthGandalf committed Nov 14, 2021
1 parent dde59a2 commit dcb5f3d
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
14 changes: 14 additions & 0 deletions CMakeLists.txt
Expand Up @@ -82,6 +82,20 @@ endmacro()
tristate_option(OPENSSL "Support SSL")
if(WANT_OPENSSL)
find_package(OpenSSL ${TRISTATE_OPENSSL_REQUIRED})

if(OPENSSL_FOUND)
# SSL_SESSION was made opaque in OpenSSL 1.1.0;
# LibreSSL gained that function later too.
# TODO: maybe remove this check at some point, and stop supporting old
# libssl versions
function(check_SSL_SESSION_get0_cipher)
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
check_cxx_symbol_exists(SSL_SESSION_get0_cipher openssl/ssl.h
HAVE_SSL_SESSION_get0_cipher)
endfunction()
check_SSL_SESSION_get0_cipher()
endif()
endif()
set(HAVE_LIBSSL "${OPENSSL_FOUND}")

Expand Down
1 change: 1 addition & 0 deletions include/znc/zncconfig.h.cmake.in
Expand Up @@ -31,6 +31,7 @@
#define HAVE_PTHREAD 1
#cmakedefine HAVE_THREADED_DNS 1
#cmakedefine HAVE_LIBSSL 1
#cmakedefine HAVE_SSL_SESSION_get0_cipher 1
#cmakedefine HAVE_IPV6 1
#cmakedefine HAVE_ZLIB 1
#cmakedefine HAVE_I18N 1
Expand Down
3 changes: 1 addition & 2 deletions modules/schat.cpp
Expand Up @@ -25,8 +25,7 @@
#include <znc/User.h>
#include <znc/IRCNetwork.h>

#if !defined(OPENSSL_VERSION_NUMBER) || defined(LIBRESSL_VERSION_NUMBER) || \
OPENSSL_VERSION_NUMBER < 0x10100007
#ifndef HAVE_SSL_SESSION_get0_cipher
/* SSL_SESSION was made opaque in OpenSSL 1.1.0, cipher accessor was added 2
weeks before the public release.
See openssl/openssl@e92813234318635639dba0168c7ef5568757449b. */
Expand Down

0 comments on commit dcb5f3d

Please sign in to comment.