pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Andreas Karlsson <andreas@proxel.se>
Cc: Christoph Berg <myon@debian.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Subject: Re: OpenSSL 1.1 breaks configure and more
Date: Fri, 1 Jul 2016 20:28:46 -0400
Message-ID: <20160702002846.GA376611@alvherre.pgsql> (raw)
In-Reply-To: <a5f4b79e-a9ea-200d-e17e-2da3ad187e5b@proxel.se>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-hackers>

Thanks for this effort.

>  static BIO_METHOD *
>  my_BIO_s_socket(void)
>  {
> -	if (!my_bio_initialized)
> +	if (!my_bio_methods)
>  	{
> -		memcpy(&my_bio_methods, BIO_s_socket(), sizeof(BIO_METHOD));
> -		my_bio_methods.bread = my_sock_read;
> -		my_bio_methods.bwrite = my_sock_write;
> -		my_bio_initialized = true;
> +		BIO_METHOD *biom = (BIO_METHOD *) BIO_s_socket();
> +#if SSLEAY_VERSION_NUMBER >= 0x10100000L
> +		my_bio_methods = BIO_meth_new(BIO_TYPE_SOCKET, "pgsocket");
> +		BIO_meth_set_write(my_bio_methods, my_sock_write);
> +		BIO_meth_set_read(my_bio_methods, my_sock_read);
> +		BIO_meth_set_gets(my_bio_methods, BIO_meth_get_gets(biom));
> +		BIO_meth_set_ctrl(my_bio_methods, BIO_meth_get_ctrl(biom));
> +		BIO_meth_set_create(my_bio_methods, BIO_meth_get_create(biom));
> +		BIO_meth_set_destroy(my_bio_methods, BIO_meth_get_destroy(biom));
> +		BIO_meth_set_callback_ctrl(my_bio_methods, BIO_meth_get_callback_ctrl(biom));
> +#else
> +		my_bio_methods = malloc(sizeof(BIO_METHOD));
> +		memcpy(my_bio_methods, biom, sizeof(BIO_METHOD));
> +		my_bio_methods->bread = my_sock_read;
> +		my_bio_methods->bwrite = my_sock_write;
> +#endif

Generally, version number tests sprinkled all over the place are not
terribly nice.  I think it would be better to get configure to define a
symbol like HAVE_BIO_METH_NEW.  Not sure about the other hunks in this
patch; perhaps HAVE_BIO_SET_DATA, and #define both those macros if not.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers



view thread (57+ messages)  latest in thread

Message-ID: <20160702002846.GA376611@alvherre.pgsql>
Permalink:  ../20160702002846.GA376611@alvherre.pgsql/
Also on:    postgresql.org/message-id/20160702002846.GA376611@alvherre.pgsql

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: alvherre@2ndquadrant.com, andreas@proxel.se, myon@debian.org, tgl@sss.pgh.pa.us
  Subject: Re: OpenSSL 1.1 breaks configure and more
  In-Reply-To: <20160702002846.GA376611@alvherre.pgsql>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox