Repository: qpid-proton Updated Branches: refs/heads/master 6f2105d41 -> aa53a6c00
PROTON-823: Fixed the openssl logging to respect the tracing flagsi (as much as possible) Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/aa53a6c0 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/aa53a6c0 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/aa53a6c0 Branch: refs/heads/master Commit: aa53a6c00060695a974918bbd574ce555ca14636 Parents: 6f2105d Author: Andrew Stitcher <[email protected]> Authored: Wed Feb 18 18:32:13 2015 -0500 Committer: Andrew Stitcher <[email protected]> Committed: Fri Feb 20 14:29:28 2015 -0500 ---------------------------------------------------------------------- proton-c/src/ssl/openssl.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/aa53a6c0/proton-c/src/ssl/openssl.c ---------------------------------------------------------------------- diff --git a/proton-c/src/ssl/openssl.c b/proton-c/src/ssl/openssl.c index c2b2bfe..b9331d5 100644 --- a/proton-c/src/ssl/openssl.c +++ b/proton-c/src/ssl/openssl.c @@ -150,24 +150,32 @@ static pn_ssl_session_t *ssn_cache_find( pn_ssl_domain_t *, const char * ); static void ssl_session_free( pn_ssl_session_t *); static size_t buffered_output( pn_transport_t *transport ); -// @todo: used to avoid littering the code with calls to printf... -static void ssl_log(pn_transport_t *transport, const char *fmt, ...) +static void ssl_vlog(pn_transport_t *transport, const char *fmt, va_list ap) { - if (PN_TRACE_DRV & transport->trace) { - va_list ap; - va_start(ap, fmt); + if (transport) { + if (PN_TRACE_DRV & transport->trace) { + pn_transport_vlogf(transport, fmt, ap); + } + } else { pn_transport_vlogf(transport, fmt, ap); - va_end(ap); } } +static void ssl_log(pn_transport_t *transport, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + ssl_vlog(transport, fmt, ap); + va_end(ap); +} + static void ssl_log_flush(pn_transport_t* transport) { char buf[128]; // see "man ERR_error_string_n()" unsigned long err = ERR_get_error(); while (err) { ERR_error_string_n(err, buf, sizeof(buf)); - pn_transport_logf(transport, "%s", buf); + ssl_log(transport, "%s", buf); err = ERR_get_error(); } } @@ -175,21 +183,14 @@ static void ssl_log_flush(pn_transport_t* transport) // log an error and dump the SSL error stack static void ssl_log_error(const char *fmt, ...) { - va_list ap; - if (fmt) { + va_list ap; va_start(ap, fmt); - pn_transport_vlogf(NULL, fmt, ap); + ssl_vlog(NULL, fmt, ap); va_end(ap); } - char buf[128]; // see "man ERR_error_string_n()" - unsigned long err = ERR_get_error(); - while (err) { - ERR_error_string_n(err, buf, sizeof(buf)); - pn_transport_logf(NULL, "%s", buf); - err = ERR_get_error(); - } + ssl_log_flush(NULL); } static void ssl_log_clear_data(pn_transport_t *transport, const char *data, size_t len) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
