From 66f1a6afa363c5495c38548298f2aeb87014b3cc Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Wed, 25 Jan 2017 18:06:42 +0100
Subject: 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;
}
--
cgit v1.2.3-70-g09d2