BUILD/medium: ssl: Fix build with OpenSSL < 1.1.0
Make sure it builds with OpenSSL < 1.1.0, a lot of the BIO_get/set methods
were introduced with OpenSSL 1.1.0, so fallback with the old way of doing
things if needed.
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index 30876e2..112520c 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -261,7 +261,11 @@
struct ssl_sock_ctx *ctx;
int ret;
+#if OPENSSL_VERSION_NUMBER < 0x10100000
+ ctx = h->ptr;
+#else
ctx = BIO_get_data(h);
+#endif
tmpbuf.size = num;
tmpbuf.area = (void *)(uintptr_t)buf;
tmpbuf.data = num;
@@ -290,7 +294,11 @@
struct ssl_sock_ctx *ctx;
int ret;
+#if OPENSSL_VERSION_NUMBER < 0x10100000
+ ctx = h->ptr;
+#else
ctx = BIO_get_data(h);
+#endif
tmpbuf.size = size;
tmpbuf.area = buf;
tmpbuf.data = 0;
@@ -316,8 +324,13 @@
static int ha_ssl_new(BIO *h)
{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ h->init = 1;
+ h->ptr = NULL;
+#else
BIO_set_init(h, 1);
BIO_set_data(h, NULL);
+#endif
BIO_clear_flags(h, ~0);
return 1;
}
@@ -9840,7 +9853,7 @@
ERR_load_SSL_strings();
#if OPENSSL_VERSION_NUMBER < 0x10100000L
ha_meth = malloc(sizeof(*ha_meth));
- bzero(ha_meth, sizeof(*ha_metho));
+ bzero(ha_meth, sizeof(*ha_meth));
ha_meth->bwrite = ha_ssl_write;
ha_meth->bread = ha_ssl_read;
ha_meth->ctrl = ha_ssl_ctrl;