diff --git a/src/linux_tcp/openssl.cpp b/src/linux_tcp/openssl.cpp index 9adfccf..9ee877b 100644 --- a/src/linux_tcp/openssl.cpp +++ b/src/linux_tcp/openssl.cpp @@ -354,6 +354,20 @@ void ERR_clear_error() return func(); } +/** + * Print errors via a callback + * @param cb + * @param u + */ +void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u), void *u) +{ + // the actual function + static Function func(handle, "ERR_print_errors_cb"); + + // call the openssl function + func(cb, u); +} + /** * End of namespace */ diff --git a/src/linux_tcp/openssl.h b/src/linux_tcp/openssl.h index 977f913..87c6bb6 100644 --- a/src/linux_tcp/openssl.h +++ b/src/linux_tcp/openssl.h @@ -53,6 +53,7 @@ long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); void ERR_clear_error(void); +void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u), void *u); /** * End of namespace diff --git a/src/linux_tcp/sslerrorprinter.cpp b/src/linux_tcp/sslerrorprinter.cpp index 291990d..0e53e6c 100644 --- a/src/linux_tcp/sslerrorprinter.cpp +++ b/src/linux_tcp/sslerrorprinter.cpp @@ -71,7 +71,7 @@ SslErrorPrinter::SslErrorPrinter(int retval) case SSL_ERROR_SSL: // collect all error lines - ::ERR_print_errors_cb(&sslerrorprintercallback, this); + OpenSSL::ERR_print_errors_cb(&sslerrorprintercallback, this); // done break;