[
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)