From 66f1a6afa363c5495c38548298f2aeb87014b3cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Wed, 25 Jan 2017 18:06:42 +0100 Subject: [PATCH] Fix OpenSSL 1.1 compatibility --- CMakeLists.txt | 2 ++ json-rpc-shell.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52b691d..465d8b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,8 @@ set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) find_package (Curses) find_package (PkgConfig REQUIRED) pkg_check_modules (dependencies REQUIRED libcurl jansson) +# Note that cURL can link to a different version of libssl than we do, +# in which case the results are undefined pkg_check_modules (libssl REQUIRED libssl libcrypto) find_package (LibEV REQUIRED) pkg_check_modules (ncursesw ncursesw) diff --git a/json-rpc-shell.c b/json-rpc-shell.c index 8b6da1b..cf6523b 100644 --- a/json-rpc-shell.c +++ b/json-rpc-shell.c @@ -2241,10 +2241,15 @@ backend_ws_new (struct app_context *ctx, self->endpoint = xstrdup (endpoint); self->url = *url; +#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER SSL_library_init (); atexit (EVP_cleanup); SSL_load_error_strings (); atexit (ERR_free_strings); +#else + // Cleanup is done automatically via atexit() + OPENSSL_init_ssl (0, NULL); +#endif return &self->super; }