diff options
author | Alexey Dokuchaev <danfe@FreeBSD.org> | 2021-03-15 07:20:56 +0000 |
---|---|---|
committer | Alexey Dokuchaev <danfe@FreeBSD.org> | 2021-03-15 07:20:56 +0000 |
commit | 84e4216099644be3560771a5082f6fb7325c3262 (patch) | |
tree | e63990b29ab49c6e6b59163b132b02c5815e70f8 /net/gsk | |
parent | 80f8bd17128e1f1021dfb5d8ef644f524ba8f2ed (diff) | |
download | ports-84e4216099644be3560771a5082f6fb7325c3262.tar.gz ports-84e4216099644be3560771a5082f6fb7325c3262.zip |
Unbreak the build against contemporary OpenSSL versions by converting
to the new BIO_*() API.
Notes
Notes:
svn path=/head/; revision=568438
Diffstat (limited to 'net/gsk')
-rw-r--r-- | net/gsk/Makefile | 9 | ||||
-rw-r--r-- | net/gsk/files/patch-src_ssl_gskopensslbiostream.c | 84 |
2 files changed, 85 insertions, 8 deletions
diff --git a/net/gsk/Makefile b/net/gsk/Makefile index 5521c374f500..d8adf3f10de2 100644 --- a/net/gsk/Makefile +++ b/net/gsk/Makefile @@ -26,13 +26,6 @@ LDFLAGS+= -L${OPENSSLLIB} OPTIONS_DEFINE= DOCS -.include <bsd.port.pre.mk> - -.if ${SSL_DEFAULT} == base -BROKEN_FreeBSD_12= incomplete definition of type 'struct bio_st' -BROKEN_FreeBSD_13= incomplete definition of type 'struct bio_st' -.endif - post-patch: @${REINPLACE_CMD} -e \ '/^SUBDIRS/s|doc||' ${WRKSRC}/Makefile.in @@ -47,4 +40,4 @@ post-install-DOCS-on: ${INSTALL_DATA} ${WRKSRC}/doc/html/*.html ${STAGEDIR}${DOCSDIR}/html ${INSTALL_DATA} ${WRKSRC}/doc/html/*.png ${STAGEDIR}${DOCSDIR}/html -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/net/gsk/files/patch-src_ssl_gskopensslbiostream.c b/net/gsk/files/patch-src_ssl_gskopensslbiostream.c new file mode 100644 index 000000000000..bb40af62d49e --- /dev/null +++ b/net/gsk/files/patch-src_ssl_gskopensslbiostream.c @@ -0,0 +1,84 @@ +--- src/ssl/gskopensslbiostream.c.orig 2006-05-17 18:39:31 UTC ++++ src/ssl/gskopensslbiostream.c +@@ -106,7 +106,7 @@ bio_gsk_stream_pair_bwrite (BIO *bio, + const char *out, + int length) + { +- GskBufferStream *buffer_stream = GSK_BUFFER_STREAM (bio->ptr); ++ GskBufferStream *buffer_stream = GSK_BUFFER_STREAM (BIO_get_data(bio)); + DEBUG_BIO("bio_gsk_stream_pair_bwrite: writing %d bytes to read-buffer of backend", length); + gsk_buffer_append (gsk_buffer_stream_peek_read_buffer (buffer_stream), out, length); + gsk_buffer_stream_read_buffer_changed (buffer_stream); +@@ -118,7 +118,7 @@ bio_gsk_stream_pair_bread (BIO *bio, + char *in, + int max_length) + { +- GskBufferStream *buffer_stream = GSK_BUFFER_STREAM (bio->ptr); ++ GskBufferStream *buffer_stream = GSK_BUFFER_STREAM (BIO_get_data(bio)); + guint length = gsk_buffer_read (gsk_buffer_stream_peek_write_buffer (buffer_stream), in, max_length); + DEBUG_BIO("bio_gsk_stream_pair_bread: read %u bytes of %d bytes from backend write buffer", length, max_length); + if (length > 0) +@@ -132,7 +132,7 @@ bio_gsk_stream_pair_ctrl (BIO *bio, + long num, + void *ptr) + { +- GskBufferStreamOpenssl *openssl_buffer_stream = GSK_BUFFER_STREAM_OPENSSL (bio->ptr); ++ GskBufferStreamOpenssl *openssl_buffer_stream = GSK_BUFFER_STREAM_OPENSSL (BIO_get_data(bio)); + g_assert (openssl_buffer_stream->bio == bio); + + DEBUG_BIO("bio_gsk_stream_pair_ctrl: called with cmd=%d", cmd); +@@ -161,27 +161,26 @@ bio_gsk_stream_pair_create (BIO *bio) + static int + bio_gsk_stream_pair_destroy (BIO *bio) + { +- GskBufferStream *buffer_stream = GSK_BUFFER_STREAM (bio->ptr); ++ GskBufferStream *buffer_stream = GSK_BUFFER_STREAM (BIO_get_data(bio)); + DEBUG_BIO("bio_gsk_stream_pair_destroy (%p)", bio); + if (buffer_stream == NULL) + return FALSE; + g_object_unref (buffer_stream); +- bio->ptr = NULL; ++ BIO_set_data(bio, NULL); + return TRUE; + } + +-static BIO_METHOD bio_method_gsk_stream_pair = ++static BIO_METHOD *bio_method_gsk_stream_pair = NULL; ++ ++static BIO_METHOD *create_bio_method_gsk_stream_pair(void) + { +- 22, /* type: this is quite a hack */ +- "GskStream-BIO", /* name */ +- bio_gsk_stream_pair_bwrite, /* bwrite */ +- bio_gsk_stream_pair_bread, /* bread */ +- NULL, /* bputs */ +- NULL, /* bgets */ +- bio_gsk_stream_pair_ctrl, /* ctrl */ +- bio_gsk_stream_pair_create, /* create */ +- bio_gsk_stream_pair_destroy, /* destroy */ +- NULL /* callback_ctrl */ ++ BIO_METHOD *bm = BIO_meth_new(BIO_get_new_index(), "GskStream-BIO"); ++ BIO_meth_set_write(bm, bio_gsk_stream_pair_bwrite); ++ BIO_meth_set_read(bm, bio_gsk_stream_pair_bread); ++ BIO_meth_set_ctrl(bm, bio_gsk_stream_pair_ctrl); ++ BIO_meth_set_create(bm, bio_gsk_stream_pair_create); ++ BIO_meth_set_destroy(bm, bio_gsk_stream_pair_destroy); ++ return bm; + }; + + +@@ -207,9 +206,11 @@ gsk_openssl_bio_stream_pair (BIO **bio_ou + { + GskBufferStreamOpenssl *openssl_stream = g_object_new (GSK_TYPE_BUFFER_STREAM_OPENSSL, NULL); + GskStream *stream = GSK_STREAM (openssl_stream); +- *bio_out = BIO_new (&bio_method_gsk_stream_pair); +- (*bio_out)->ptr = g_object_ref (stream); +- (*bio_out)->init = TRUE; /// HMM... ++ if (bio_method_gsk_stream_pair == NULL) ++ bio_method_gsk_stream_pair = create_bio_method_gsk_stream_pair(); ++ *bio_out = BIO_new (bio_method_gsk_stream_pair); ++ BIO_set_data(*bio_out, g_object_ref (stream)); ++ BIO_set_init(*bio_out, TRUE); /// HMM... + *stream_out = GSK_BUFFER_STREAM (stream); + openssl_stream->bio = *bio_out; + return TRUE; |