FreeBSD Bugzilla – Attachment 199025 Details for
Bug 229023
devel/ptlib: Fails to build with OpenSSL 1.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
ugly patch
ptlib_openssl.diff (text/plain), 4.43 KB, created by
Steve Wills
on 2018-11-06 19:46:18 UTC
(
hide
)
Description:
ugly patch
Filename:
MIME Type:
Creator:
Steve Wills
Created:
2018-11-06 19:46:18 UTC
Size:
4.43 KB
patch
obsolete
>diff --git devel/ptlib/Makefile devel/ptlib/Makefile >index c004f259a588..dfb803bea908 100644 >--- devel/ptlib/Makefile >+++ devel/ptlib/Makefile >@@ -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} >diff --git devel/ptlib/files/patch-src_ptclib_pssl.cxx devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx >similarity index 100% >rename from devel/ptlib/files/patch-src_ptclib_pssl.cxx >rename to devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx >diff --git devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx-openssl111 devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx-openssl111 >new file mode 100644 >index 000000000000..2cc0218e5d9d >--- /dev/null >+++ devel/ptlib/files/extra-patch-src_ptclib_pssl.cxx-openssl111 >@@ -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;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 229023
:
199019
| 199025