diff --git a/include/proto/ssl_sock.h b/include/proto/ssl_sock.h index 62ebcb87e..ce52fb74c 100644 --- a/include/proto/ssl_sock.h +++ b/include/proto/ssl_sock.h @@ -85,6 +85,10 @@ SSL_CTX *ssl_sock_get_generated_cert(unsigned int key, struct bind_conf *bind_co int ssl_sock_set_generated_cert(SSL_CTX *ctx, unsigned int key, struct bind_conf *bind_conf); unsigned int ssl_sock_generated_cert_key(const void *data, size_t len); +#if (OPENSSL_VERSION_NUMBER >= 0x1010000fL) && !defined(OPENSSL_NO_ASYNC) +void ssl_async_fd_handler(int fd); +void ssl_async_fd_free(int fd); +#endif /* ssl shctx macro */ diff --git a/src/cli.c b/src/cli.c index 568ceba2e..843c3d043 100644 --- a/src/cli.c +++ b/src/cli.c @@ -69,6 +69,9 @@ #include #include #include +#ifdef USE_OPENSSL +#include +#endif #define PAYLOAD_PATTERN "<<" @@ -998,6 +1001,12 @@ static int cli_io_handler_show_fd(struct appctx *appctx) (fdt.iocb == listener_accept) ? "listener_accept" : (fdt.iocb == poller_pipe_io_handler) ? "poller_pipe_io_handler" : (fdt.iocb == mworker_accept_wrapper) ? "mworker_accept_wrapper" : +#ifdef USE_OPENSSL +#if (OPENSSL_VERSION_NUMBER >= 0x1010000fL) && !defined(OPENSSL_NO_ASYNC) + (fdt.iocb == ssl_async_fd_free) ? "ssl_async_fd_free" : + (fdt.iocb == ssl_async_fd_handler) ? "ssl_async_fd_handler" : +#endif +#endif "unknown"); if (fdt.iocb == conn_fd_handler) { diff --git a/src/ssl_sock.c b/src/ssl_sock.c index 112520c82..58ae8a264 100644 --- a/src/ssl_sock.c +++ b/src/ssl_sock.c @@ -573,7 +573,7 @@ fail_get: /* * openssl async fd handler */ -static void ssl_async_fd_handler(int fd) +void ssl_async_fd_handler(int fd) { struct connection *conn = fdtab[fd].owner; @@ -594,7 +594,7 @@ static void ssl_async_fd_handler(int fd) /* * openssl async delayed SSL_free handler */ -static void ssl_async_fd_free(int fd) +void ssl_async_fd_free(int fd) { SSL *ssl = fdtab[fd].owner; OSSL_ASYNC_FD all_fd[32];