about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorChristoph Biedl <ngircd.anoy@manchmal.in-ulm.de>2016-12-05 20:26:00 +0100
committerAlexander Barton <alex@barton.de>2016-12-05 23:51:07 +0100
commitdaa88b765111b14047c97256bd2a9a2daabe123b (patch)
treed4db453d8f4a9b8e329bf3618d7922d8ce2775a4 /src
parent2924b3d52ac2ab89e3bc517a1f664ec056a45edd (diff)
downloadngircd-daa88b765111b14047c97256bd2a9a2daabe123b.tar.gz
ngircd-daa88b765111b14047c97256bd2a9a2daabe123b.zip
Fix building ngIRCd with OpenSSL 1.1
At the moment, ngIRCd fails to build against OpenSSL 1.1 since the
configure check probes for the SSL_library_init symbol which was
removed, but probing for a different function availabe in both versions
solves that problem: SSL_new().

And as SSL_library_init is no longer needed, the patch boils down to
probing SSL_new to assert libssl is available, and disabling the
SSL_library_init invokation from OpenSSL 1.1 on, see also another
application[1] (NSCA-ng) that did pretty much the same.

Patch was compile-tested on both Debian jessie (OpenSSL 1.0.2) and
stretch (OpenSSL 1.1).

[1] <https://www.nsca-ng.org/cgi-bin/repository/nsca-ng/commit/?id=8afc22031ff174f02caad4afc83fa5dff2c29f8a>

(Patch by Christoph, commit message cherry-picked from the email thread
on the mailing list by Alex. Thanks!)
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/conn-ssl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/ngircd/conn-ssl.c b/src/ngircd/conn-ssl.c
index 2cb734d4..705c29d5 100644
--- a/src/ngircd/conn-ssl.c
+++ b/src/ngircd/conn-ssl.c
@@ -283,10 +283,12 @@ ConnSSL_InitLibrary( void )
 #ifdef HAVE_LIBSSL
 	SSL_CTX *newctx;
 
+#if OPENSSL_API_COMPAT < 0x10100000L
 	if (!ssl_ctx) {
 		SSL_library_init();
 		SSL_load_error_strings();
 	}
+#endif
 
 	if (!RAND_status()) {
 		Log(LOG_ERR, "OpenSSL PRNG not seeded: /dev/urandom missing?");