aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2017-05-23 10:15:28 +0200
committerDiego Biurrun <diego@biurrun.de>2017-06-02 10:41:52 +0200
commit61cec5adaacb358783c18aa07362f15824c1b274 (patch)
tree974bfc9f4461436d5e9f3584051b8d9e6327b11f
parent5edded9df31bc4712a023f89941b4c278f1bd6f5 (diff)
downloadffmpeg-61cec5adaacb358783c18aa07362f15824c1b274.tar.gz
tls: Hide backend implementation details from users
TLS is currently implemented over either OpenSSL or GnuTLS, with more backends likely to appear in the future. Currently, those backend libraries are part of the protocol names used during e.g. the configure stage of a build. Hide those details behind a generically-named declaration for the TLS protocol to avoid leaking those details into the configuration stage.
-rwxr-xr-xconfigure8
-rw-r--r--libavformat/Makefile5
-rw-r--r--libavformat/network.c12
-rw-r--r--libavformat/protocols.c3
-rw-r--r--libavformat/tls.h2
-rw-r--r--libavformat/tls_gnutls.c2
-rw-r--r--libavformat/tls_openssl.c2
7 files changed, 16 insertions, 18 deletions
diff --git a/configure b/configure
index f86ca158c9..90760fe39e 100755
--- a/configure
+++ b/configure
@@ -2468,12 +2468,8 @@ sctp_protocol_deps="struct_sctp_event_subscribe"
sctp_protocol_select="network"
srtp_protocol_select="rtp_protocol srtp"
tcp_protocol_select="network"
-tls_gnutls_protocol_deps="gnutls"
-tls_gnutls_protocol_select="tcp_protocol"
-tls_openssl_protocol_conflict="tls_gnutls_protocol"
-tls_openssl_protocol_deps="openssl"
-tls_openssl_protocol_select="tcp_protocol"
-tls_protocol_deps_any="tls_gnutls_protocol tls_openssl_protocol"
+tls_protocol_deps_any="gnutls openssl"
+tls_protocol_select="tcp_protocol"
udp_protocol_select="network"
unix_protocol_deps="sys_un_h"
unix_protocol_select="network"
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 7b1df9342c..2c1c0f6d7f 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -408,8 +408,9 @@ OBJS-$(CONFIG_RTP_PROTOCOL) += rtpproto.o
OBJS-$(CONFIG_SCTP_PROTOCOL) += sctp.o
OBJS-$(CONFIG_SRTP_PROTOCOL) += srtpproto.o srtp.o
OBJS-$(CONFIG_TCP_PROTOCOL) += tcp.o
-OBJS-$(CONFIG_TLS_GNUTLS_PROTOCOL) += tls_gnutls.o tls.o
-OBJS-$(CONFIG_TLS_OPENSSL_PROTOCOL) += tls_openssl.o tls.o
+TLS-OBJS-$(CONFIG_GNUTLS) += tls_gnutls.o
+TLS-OBJS-$(CONFIG_OPENSSL) += tls_openssl.o
+OBJS-$(CONFIG_TLS_PROTOCOL) += tls.o $(TLS-OBJS-yes)
OBJS-$(CONFIG_UDP_PROTOCOL) += udp.o
OBJS-$(CONFIG_UNIX_PROTOCOL) += unix.o
diff --git a/libavformat/network.c b/libavformat/network.c
index 2c34b4a14b..86d79553f7 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -27,22 +27,26 @@
void ff_tls_init(void)
{
-#if CONFIG_TLS_OPENSSL_PROTOCOL
+#if CONFIG_TLS_PROTOCOL
+#if CONFIG_OPENSSL
ff_openssl_init();
#endif
-#if CONFIG_TLS_GNUTLS_PROTOCOL
+#if CONFIG_GNUTLS
ff_gnutls_init();
#endif
+#endif
}
void ff_tls_deinit(void)
{
-#if CONFIG_TLS_OPENSSL_PROTOCOL
+#if CONFIG_TLS_PROTOCOL
+#if CONFIG_OPENSSL
ff_openssl_deinit();
#endif
-#if CONFIG_TLS_GNUTLS_PROTOCOL
+#if CONFIG_GNUTLS
ff_gnutls_deinit();
#endif
+#endif
}
int ff_network_inited_globally;
diff --git a/libavformat/protocols.c b/libavformat/protocols.c
index d25454021f..8ea5c0e757 100644
--- a/libavformat/protocols.c
+++ b/libavformat/protocols.c
@@ -48,8 +48,7 @@ extern const URLProtocol ff_rtp_protocol;
extern const URLProtocol ff_sctp_protocol;
extern const URLProtocol ff_srtp_protocol;
extern const URLProtocol ff_tcp_protocol;
-extern const URLProtocol ff_tls_gnutls_protocol;
-extern const URLProtocol ff_tls_openssl_protocol;
+extern const URLProtocol ff_tls_protocol;
extern const URLProtocol ff_udp_protocol;
extern const URLProtocol ff_unix_protocol;
extern const URLProtocol ff_librtmp_protocol;
diff --git a/libavformat/tls.h b/libavformat/tls.h
index 22cb6250b4..94f30ab854 100644
--- a/libavformat/tls.h
+++ b/libavformat/tls.h
@@ -26,8 +26,6 @@
#include "url.h"
#include "libavutil/opt.h"
-#define CONFIG_TLS_PROTOCOL (CONFIG_TLS_GNUTLS_PROTOCOL | CONFIG_TLS_OPENSSL_PROTOCOL)
-
typedef struct TLSShared {
char *ca_file;
int verify;
diff --git a/libavformat/tls_gnutls.c b/libavformat/tls_gnutls.c
index f8a612ad9b..1ae7656dcb 100644
--- a/libavformat/tls_gnutls.c
+++ b/libavformat/tls_gnutls.c
@@ -233,7 +233,7 @@ static const AVClass tls_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const URLProtocol ff_tls_gnutls_protocol = {
+const URLProtocol ff_tls_protocol = {
.name = "tls",
.url_open2 = tls_open,
.url_read = tls_read,
diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
index 0abccf00a9..71fa96871d 100644
--- a/libavformat/tls_openssl.c
+++ b/libavformat/tls_openssl.c
@@ -323,7 +323,7 @@ static const AVClass tls_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const URLProtocol ff_tls_openssl_protocol = {
+const URLProtocol ff_tls_protocol = {
.name = "tls",
.url_open2 = tls_open,
.url_read = tls_read,