summaryrefslogtreecommitdiff
path: root/media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch')
-rw-r--r--media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch b/media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch
new file mode 100644
index 000000000000..55f2189e15f4
--- /dev/null
+++ b/media-libs/libshout/files/libshout-2.4.2-tls-compile-with-OpenSSL-1.1.0.patch
@@ -0,0 +1,61 @@
+From 3f07c95482c15f151e10f06c89302d3700c6430f Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Mon, 6 May 2019 13:33:48 +0200
+Subject: [PATCH] tls: compile with OpenSSL 1.1.0
+
+The init functions are not longer required in OpenSSL 1.1 so I dropped
+them.
+
+TLSv1_client_method() should not be used because it enables only the
+TLSv1.0 protocol. Better is to use SSLv23_client_method() which enable
+all the protocols including TLSv1.2. With this functions SSLv2 and SSLv3
+is theoretically possible but as of today those protocols are usually
+build-time disabled.
+To avoid all this OpenSSL 1.1 provides TLS_client_method() which is aim
+to provide to highest TLS protocol version (same as
+SSLv23_client_method() but it is deprecated in 1.1).
+
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+
+Forward-ported to libshout-2.4.2 by Lars Wendler <polynomial-c@gentoo.org>
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ src/tls.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/tls.c b/src/tls.c
+index aed5bfc..d60fb57 100644
+--- a/src/tls.c
++++ b/src/tls.c
+@@ -26,6 +26,7 @@
+ #include <string.h>
+
+ #include <shout/shout.h>
++#include <string.h>
+ #include "shout_private.h"
+
+ #ifndef XXX_HAVE_X509_check_host
+@@ -86,14 +87,17 @@ shout_tls_t *shout_tls_new(shout_t *self, sock_t socket)
+
+ static inline int tls_setup(shout_tls_t *tls)
+ {
+- SSL_METHOD *meth;
+-
++ const SSL_METHOD *meth;
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
+ SSL_library_init();
+ SSL_load_error_strings();
+ SSLeay_add_all_algorithms();
+ SSLeay_add_ssl_algorithms();
+
+- meth = TLSv1_client_method();
++ meth = SSLv23_client_method();
++#else
++ meth = TLS_client_method();
++#endif
+ if (!meth)
+ goto error;
+
+--
+2.21.0
+