[ https://issues.apache.org/jira/browse/TS-5059?focusedWorklogId=34810&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-34810 ]
ASF GitHub Bot logged work on TS-5059: -------------------------------------- Author: ASF GitHub Bot Created on: 05/Jan/17 18:04 Start Date: 05/Jan/17 18:04 Worklog Time Spent: 10m Work Description: Github user jablko commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/1294#discussion_r94818857 --- Diff: iocore/net/BIO_fastopen.cc --- @@ -27,28 +27,27 @@ #include "BIO_fastopen.h" -static int -fastopen_create(BIO *bio) -{ - bio->init = 0; - bio->num = NO_FD; - bio->flags = 0; - bio->ptr = nullptr; +#if OPENSSL_VERSION_NUMBER < 0x10100000L +#define BIO_set_data(a, _ptr) ((a)->ptr = (_ptr)) +#define BIO_get_data(a) ((a)->ptr) +#define BIO_get_shutdown(a) ((a)->shutdown) +#define BIO_meth_get_ctrl(biom) ((biom)->ctrl) +#define BIO_meth_get_create(biom) ((biom)->create) +#define BIO_meth_get_destroy(biom) ((biom)->destroy) +#endif - return 1; -} +static int (*fastopen_create)(BIO *) = BIO_meth_get_create(const_cast<BIO_METHOD *>(BIO_s_socket())); static int fastopen_destroy(BIO *bio) { if (bio) { // We expect this BIO to not own the socket, so we must always // be in NOCLOSE mode. - ink_assert(bio->shutdown == BIO_NOCLOSE); - fastopen_create(bio); + ink_assert(BIO_get_shutdown(bio) == BIO_NOCLOSE); } - return 1; + return BIO_meth_get_destroy(const_cast<BIO_METHOD *>(BIO_s_socket()))(bio); --- End diff -- Agreed. https://github.com/openssl/openssl/pull/2181 Issue Time Tracking ------------------- Worklog Id: (was: 34810) Time Spent: 7h 20m (was: 7h 10m) > ATS 7.0.0 build fails with OpenSSL 1.1.0c > ----------------------------------------- > > Key: TS-5059 > URL: https://issues.apache.org/jira/browse/TS-5059 > Project: Traffic Server > Issue Type: Bug > Components: SSL, TLS > Reporter: Jean Baptiste Favre > Fix For: 7.1.0 > > Time Spent: 7h 20m > Remaining Estimate: 0h > > ATS 7.0.0 build currently fails with following error: > {code}SSLInternal.cc: In function ‘void SSL_set_rbio(SSL*, BIO*)’: > SSLInternal.cc:40:10: error: invalid use of incomplete type ‘SSL {aka > struct ssl_st}’ > if (ssl->rbio != NULL) { > ^~ > In file included from /usr/include/openssl/crypto.h:31:0, > from /usr/include/openssl/comp.h:16, > from /usr/include/openssl/ssl.h:47, > from SSLInternal.cc:33: > /usr/include/openssl/ossl_typ.h:144:16: note: forward declaration of > ‘SSL {aka struct ssl_st}’ > typedef struct ssl_st SSL; > ^~~~~~ > SSLInternal.cc:41:17: error: invalid use of incomplete type ‘SSL {aka > struct ssl_st}’ > BIO_free(ssl->rbio); > ^~ > In file included from /usr/include/openssl/crypto.h:31:0, > from /usr/include/openssl/comp.h:16, > from /usr/include/openssl/ssl.h:47, > from SSLInternal.cc:33: > /usr/include/openssl/ossl_typ.h:144:16: note: forward declaration of > ‘SSL {aka struct ssl_st}’ > typedef struct ssl_st SSL; > ^~~~~~ > SSLInternal.cc:43:6: error: invalid use of incomplete type ‘SSL {aka > struct ssl_st}’ > ssl->rbio = rbio; > ^~ > In file included from /usr/include/openssl/crypto.h:31:0, > from /usr/include/openssl/comp.h:16, > from /usr/include/openssl/ssl.h:47, > from SSLInternal.cc:33: > /usr/include/openssl/ossl_typ.h:144:16: note: forward declaration of > ‘SSL {aka struct ssl_st}’ > typedef struct ssl_st SSL; > ^~~~~~ > {code} > The full configure log can be found here: > https://gist.github.com/jbfavre/00f63362b435d8ffc682d42d29b671f2 > According to https://wiki.openssl.org/index.php/1.1_API_Changes : > > setting SSL->rbio without setting SSL->wbio. New function introduction > in 1.1.0 to handle this: SSL_set_rbio()". > Problem is, rbio doesn't seems to be nicely detected at configure stage: > {code}checking for SSL_set_rbio... no > checking whether to enable set rbio... no{code} > Binding ATS to OpenSSL 1.0 still works. > Regards, > Jean Baptiste Favre -- This message was sent by Atlassian JIRA (v6.3.4#6332)