telephony/resiprocate: fix upcoming build breakage

In libssl SSL_CTX and other structs will be made opaque. Take the
code path using accessors instead of reaching directly into some
structs to fix the resulting build breakage.

ok feinerer (maintainer)
This commit is contained in:
tb 2021-05-09 10:52:44 +00:00
parent df3c9db7fb
commit 72d3876ab4
2 changed files with 73 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.2 2020/06/04 20:50:39 naddy Exp $
# $OpenBSD: Makefile,v 1.3 2021/05/09 10:52:44 tb Exp $
COMMENT-main = reSIProcate SIP stack
COMMENT-repro = reSIProcate SIP proxy/registrar server
@ -6,7 +6,7 @@ COMMENT-return = reSIProcate STUN/TURN client and server
V = 1.12.0
DISTNAME = resiprocate-${V}
REVISION = 0
REVISION = 1
PKGNAME-main = resiprocate-${V}
PKGNAME-repro = resiprocate-repro-${V}
PKGNAME-return = resiprocate-return-${V}

View File

@ -0,0 +1,71 @@
$OpenBSD: patch-contrib_asio_include_asio_ssl_impl_context_ipp,v 1.1 2021/05/09 10:52:44 tb Exp $
Use accessors instead of reaching into structs. LibreSSL 3.4.x will
make SSL_CTX and other structs opaque.
Index: contrib/asio/include/asio/ssl/impl/context.ipp
--- contrib/asio/include/asio/ssl/impl/context.ipp.orig
+++ contrib/asio/include/asio/ssl/impl/context.ipp
@@ -386,7 +386,7 @@ context::~context()
{
if (handle_)
{
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
void* cb_userdata = handle_->default_passwd_callback_userdata;
@@ -397,7 +397,7 @@ context::~context()
static_cast<detail::password_callback_base*>(
cb_userdata);
delete callback;
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
::SSL_CTX_set_default_passwd_cb_userdata(handle_, 0);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
handle_->default_passwd_callback_userdata = 0;
@@ -734,7 +734,7 @@ ASIO_SYNC_OP_VOID context::use_certificate_chain(
bio_cleanup bio = { make_buffer_bio(chain) };
if (bio.p)
{
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
@@ -761,7 +761,7 @@ ASIO_SYNC_OP_VOID context::use_certificate_chain(
ASIO_SYNC_OP_VOID_RETURN(ec);
}
-#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10002000L)
::SSL_CTX_clear_chain_certs(handle_);
#else
if (handle_->extra_certs)
@@ -838,7 +838,7 @@ ASIO_SYNC_OP_VOID context::use_private_key(
{
::ERR_clear_error();
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
@@ -905,7 +905,7 @@ ASIO_SYNC_OP_VOID context::use_rsa_private_key(
{
::ERR_clear_error();
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
@@ -1144,7 +1144,7 @@ int context::verify_callback_function(int preverified,
ASIO_SYNC_OP_VOID context::do_set_password_callback(
detail::password_callback_base* callback, asio::error_code& ec)
{
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
void* old_callback = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
::SSL_CTX_set_default_passwd_cb_userdata(handle_, callback);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)