пт, 24 сент. 2021 г. в 18:44, Willy Tarreau <[email protected]>:

> Hi Ilya,
>
> On Mon, Sep 20, 2021 at 10:37:04PM +0500, ???? ??????? wrote:
> > Subject: [PATCH] BUILD: SSL: function "ERR_func_error_string" is
> deprecated in
> >  OpenSSL-3.0.0
> >
> > let us prepare for using OpenSSL-3.0.0 in no deprecation mode
> > ---
> >  src/ssl_sock.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/ssl_sock.c b/src/ssl_sock.c
> > index a87d70b89..79b8b53ca 100644
> > --- a/src/ssl_sock.c
> > +++ b/src/ssl_sock.c
> > @@ -606,7 +606,12 @@ static forceinline void ssl_sock_dump_errors(struct
> connection *conn)
> >                               return;
> >                       fprintf(stderr, "fd[%#x] OpenSSL error[0x%lx] %s:
> %s\n",
> >                               conn->handle.fd, ret,
> > -                             ERR_func_error_string(ret),
> ERR_reason_error_string(ret));
> > +#if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
> > +                             "OPENSSL_internal",
> > +#else
> > +                             ERR_func_error_string(ret),
> > +#endif
> > +                             ERR_reason_error_string(ret));
>
> I'd really prefer that we address all this API stuff through the
> openssl-compat stuff, so that over time we can more easily drop
> unneeded stuff. Above that could be done this way:
>
>   #if (OPENSSL_VERSION_NUMBER >= 0x30000000L)
>   #  define ERR_func_error_string(ret) "OPENSSL_internal"
>   #endif
>


This introduces dangerous dependency on ERR_func_error_string being
substituted by preprocessor before it is passed to the compiler (or not)


>
> This will also help us deal with the various forks that will sooner or
> later start to adopt the new API.
>
> thanks!
> Willy
>

Reply via email to