Date: Fri, 9 Nov 2018 15:46:58 +0000 (UTC) From: Steve Wills <swills@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r484518 - in head/devel/ptlib: . files Message-ID: <201811091546.wA9FkwNj041256@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: swills Date: Fri Nov 9 15:46:58 2018 New Revision: 484518 URL: https://svnweb.freebsd.org/changeset/ports/484518 Log: devel/ptlib: fix build with OpenSSL 1.1 PR: 229023 Submitted by: brnrd (based on) Added: head/devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx (contents, props changed) - copied, changed from r484517, head/devel/ptlib/files/patch-src_ptclib_pssl.cxx head/devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx-openssl111 (contents, props changed) Deleted: head/devel/ptlib/files/patch-src_ptclib_pssl.cxx Modified: head/devel/ptlib/Makefile (contents, props changed) Modified: head/devel/ptlib/Makefile ============================================================================== --- head/devel/ptlib/Makefile Fri Nov 9 15:42:40 2018 (r484517) +++ head/devel/ptlib/Makefile Fri Nov 9 15:46:58 2018 (r484518) @@ -46,6 +46,12 @@ DEBUG_DESC= Install debug library .include <bsd.port.options.mk> +.if ${OSVERSION} > 1200085 +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_ptclib_pssl.cxx-openssl111 +.else +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_ptclib_pssl.cxx +.endif + PLIST_SUB+= PORTVERSION=${PORTVERSION} \ PVERSION_MAJOR=${PVERSION_MAJOR} \ PVERSION_MINOR=${PVERSION_MINOR} Copied and modified: head/devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx (from r484517, head/devel/ptlib/files/patch-src_ptclib_pssl.cxx) ============================================================================== Added: head/devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx-openssl111 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx-openssl111 Fri Nov 9 15:46:58 2018 (r484518) @@ -0,0 +1,143 @@ +--- src/ptclib/pssl.cxx.orig 2013-08-14 18:20:27.000000000 -0500 ++++ src/ptclib/pssl.cxx 2018-11-06 11:53:45.651466000 -0600 +@@ -140,7 +140,7 @@ + class PSSL_BIO + { + public: +- PSSL_BIO(BIO_METHOD *method = BIO_s_file_internal()) ++ PSSL_BIO(const BIO_METHOD *method = BIO_s_file()) + { bio = BIO_new(method); } + + ~PSSL_BIO() +@@ -627,9 +627,10 @@ + if (dh == NULL) + return; + +- dh->p = BN_bin2bn(pData, pSize, NULL); +- dh->g = BN_bin2bn(gData, gSize, NULL); +- if (dh->p != NULL && dh->g != NULL) ++ BIGNUM *p = BN_bin2bn(pData, pSize, NULL); ++ BIGNUM *g = BN_bin2bn(gData, gSize, NULL); ++ DH_set0_pqg(dh, p, NULL, g); ++ if (p != NULL && p != NULL) + return; + + DH_free(dh); +@@ -805,13 +806,11 @@ + SSL_METHOD * meth; + + switch (method) { +- case SSLv3: +- meth = SSLv3_method(); +- break; + case TLSv1: + meth = TLSv1_method(); + break; + case SSLv23: ++ case SSLv3: + default: + meth = SSLv23_method(); + break; +@@ -1117,7 +1116,7 @@ + // + + +-#define PSSLCHANNEL(bio) ((PSSLChannel *)(bio->ptr)) ++#define PSSLCHANNEL(bio) ((PSSLChannel *)BIO_get_data(bio)) + + extern "C" { + +@@ -1130,10 +1129,9 @@ + + static int Psock_new(BIO * bio) + { +- bio->init = 0; +- bio->num = 0; +- bio->ptr = NULL; // this is really (PSSLChannel *) +- bio->flags = 0; ++ BIO_set_init(bio, 0); ++ BIO_set_data(bio, NULL); ++ BIO_clear_flags(bio, ~0); + + return(1); + } +@@ -1144,13 +1142,13 @@ + if (bio == NULL) + return 0; + +- if (bio->shutdown) { +- if (bio->init) { ++ if (BIO_get_shutdown(bio)) { ++ if (BIO_get_init(bio)) { + PSSLCHANNEL(bio)->Shutdown(PSocket::ShutdownReadAndWrite); + PSSLCHANNEL(bio)->Close(); + } +- bio->init = 0; +- bio->flags = 0; ++ BIO_set_init(bio, 0); ++ BIO_clear_flags(bio, ~0); + } + return 1; + } +@@ -1160,11 +1158,11 @@ + { + switch (cmd) { + case BIO_CTRL_SET_CLOSE: +- bio->shutdown = (int)num; ++ BIO_set_shutdown(bio, (int)num); + return 1; + + case BIO_CTRL_GET_CLOSE: +- return bio->shutdown; ++ return BIO_get_shutdown(bio); + + case BIO_CTRL_FLUSH: + return 1; +@@ -1239,7 +1237,8 @@ + }; + + +-static BIO_METHOD methods_Psock = ++static BIO_METHOD *methods_Psock = NULL; ++/* + { + BIO_TYPE_SOCKET, + "PTLib-PSSLChannel", +@@ -1261,19 +1260,33 @@ + Psock_free + #endif + }; ++*/ + +- + PBoolean PSSLChannel::OnOpen() + { +- BIO * bio = BIO_new(&methods_Psock); ++ if (methods_Psock == NULL) { ++ methods_Psock = BIO_meth_new(BIO_TYPE_SOCKET | BIO_get_new_index(), "PTLib-PSSLChannel"); ++ if (methods_Psock == NULL || ++ BIO_meth_set_write(methods_Psock, Psock_write) || ++ BIO_meth_set_read(methods_Psock, Psock_read) || ++ BIO_meth_set_puts(methods_Psock, Psock_puts) || ++ BIO_meth_set_gets(methods_Psock, NULL) || ++ BIO_meth_set_ctrl(methods_Psock, Psock_ctrl) || ++ BIO_meth_set_create(methods_Psock, Psock_new) || ++ BIO_meth_set_destroy(methods_Psock, Psock_free)) { ++ SSLerr(SSL_F_SSL_SET_FD,ERR_R_BUF_LIB); ++ return PFalse; ++ } ++ } ++ BIO * bio = BIO_new(methods_Psock); + if (bio == NULL) { + SSLerr(SSL_F_SSL_SET_FD,ERR_R_BUF_LIB); + return PFalse; + } + + // "Open" then bio +- bio->ptr = this; +- bio->init = 1; ++ BIO_set_data(bio, this); ++ BIO_set_init(bio, 1); + + SSL_set_bio(ssl, bio, bio); + return PTrue;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811091546.wA9FkwNj041256>