Re: OpenSSL 1.1 breaks configure and more
От | Alvaro Herrera |
---|---|
Тема | Re: OpenSSL 1.1 breaks configure and more |
Дата | |
Msg-id | 20160702002846.GA376611@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: OpenSSL 1.1 breaks configure and more (Andreas Karlsson <andreas@proxel.se>) |
Ответы |
Re: OpenSSL 1.1 breaks configure and more
Re: OpenSSL 1.1 breaks configure and more |
Список | pgsql-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
В списке pgsql-hackers по дате отправления: