PROTON-769: Move trace flags entirely to transport code
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/e093b8c2 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/e093b8c2 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/e093b8c2 Branch: refs/heads/master Commit: e093b8c26396952ccd643beecbac11f1b02410da Parents: 815e97e Author: Andrew Stitcher <[email protected]> Authored: Tue Dec 2 12:16:00 2014 -0500 Committer: Andrew Stitcher <[email protected]> Committed: Wed Dec 10 16:43:44 2014 -0500 ---------------------------------------------------------------------- proton-c/src/dispatcher/dispatcher.c | 12 ++--- proton-c/src/dispatcher/dispatcher.h | 1 - proton-c/src/engine/engine-internal.h | 2 + proton-c/src/sasl/sasl-internal.h | 2 - proton-c/src/sasl/sasl.c | 10 +--- proton-c/src/ssl/openssl.c | 17 ++----- proton-c/src/ssl/ssl-internal.h | 2 - proton-c/src/transport/transport.c | 22 +++++---- proton-c/src/windows/schannel.c | 78 ++++++++++++++---------------- 9 files changed, 61 insertions(+), 85 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/dispatcher/dispatcher.c ---------------------------------------------------------------------- diff --git a/proton-c/src/dispatcher/dispatcher.c b/proton-c/src/dispatcher/dispatcher.c index 4efd288..08c5ef1 100644 --- a/proton-c/src/dispatcher/dispatcher.c +++ b/proton-c/src/dispatcher/dispatcher.c @@ -24,6 +24,7 @@ #include "protocol.h" #include "util.h" #include "platform_fmt.h" +#include "engine/engine-internal.h" #include "dispatch_actions.h" @@ -66,9 +67,6 @@ pn_dispatcher_t *pn_dispatcher(uint8_t frame_type, pn_transport_t *transport) disp->frame_type = frame_type; disp->transport = transport; - disp->trace = (pn_env_bool("PN_TRACE_RAW") ? PN_TRACE_RAW : PN_TRACE_OFF) | - (pn_env_bool("PN_TRACE_FRM") ? PN_TRACE_FRM : PN_TRACE_OFF) | - (pn_env_bool("PN_TRACE_DRV") ? PN_TRACE_DRV : PN_TRACE_OFF); disp->channel = 0; disp->args = pn_data(16); @@ -107,7 +105,7 @@ typedef enum {IN, OUT} pn_dir_t; static void pn_do_trace(pn_dispatcher_t *disp, uint16_t ch, pn_dir_t dir, pn_data_t *args, const char *payload, size_t size) { - if (disp->trace & PN_TRACE_FRM) { + if (disp->transport->trace & PN_TRACE_FRM) { pn_string_format(disp->scratch, "%u %s ", ch, dir == OUT ? "->" : "<-"); pn_inspect(args, disp->scratch); @@ -129,7 +127,7 @@ static void pn_do_trace(pn_dispatcher_t *disp, uint16_t ch, pn_dir_t dir, int pn_dispatch_frame(pn_dispatcher_t *disp, pn_frame_t frame) { if (frame.size == 0) { // ignore null frames - if (disp->trace & PN_TRACE_FRM) + if (disp->transport->trace & PN_TRACE_FRM) pn_transport_logf(disp->transport, "%u <- (EMPTY FRAME)\n", frame.channel); return 0; } @@ -257,7 +255,7 @@ int pn_post_frame(pn_dispatcher_t *disp, uint16_t ch, const char *fmt, ...) disp->output = (char *) realloc(disp->output, disp->capacity); } disp->output_frames_ct += 1; - if (disp->trace & PN_TRACE_RAW) { + if (disp->transport->trace & PN_TRACE_RAW) { pn_string_set(disp->scratch, "RAW: \""); pn_quote(disp->scratch, disp->output + disp->available, n); pn_string_addf(disp->scratch, "\""); @@ -366,7 +364,7 @@ int pn_post_transfer_frame(pn_dispatcher_t *disp, uint16_t ch, } disp->output_frames_ct += 1; framecount++; - if (disp->trace & PN_TRACE_RAW) { + if (disp->transport->trace & PN_TRACE_RAW) { pn_string_set(disp->scratch, "RAW: \""); pn_quote(disp->scratch, disp->output + disp->available, n); pn_string_addf(disp->scratch, "\""); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/dispatcher/dispatcher.h ---------------------------------------------------------------------- diff --git a/proton-c/src/dispatcher/dispatcher.h b/proton-c/src/dispatcher/dispatcher.h index 79008e6..c578282 100644 --- a/proton-c/src/dispatcher/dispatcher.h +++ b/proton-c/src/dispatcher/dispatcher.h @@ -50,7 +50,6 @@ struct pn_dispatcher_t { uint64_t output_frames_ct; uint64_t input_frames_ct; pn_string_t *scratch; - pn_trace_t trace; uint16_t channel; uint8_t frame_type; // Used when constructing outgoing frames bool halt; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/engine/engine-internal.h ---------------------------------------------------------------------- diff --git a/proton-c/src/engine/engine-internal.h b/proton-c/src/engine/engine-internal.h index 428a2f3..4ee9a69 100644 --- a/proton-c/src/engine/engine-internal.h +++ b/proton-c/src/engine/engine-internal.h @@ -168,6 +168,8 @@ struct pn_transport_t { pn_record_t *context; + pn_trace_t trace; + uint16_t channel_max; uint16_t remote_channel_max; bool freed; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/sasl/sasl-internal.h ---------------------------------------------------------------------- diff --git a/proton-c/src/sasl/sasl-internal.h b/proton-c/src/sasl/sasl-internal.h index 3e27e83..a8390df 100644 --- a/proton-c/src/sasl/sasl-internal.h +++ b/proton-c/src/sasl/sasl-internal.h @@ -24,8 +24,6 @@ #include <proton/sasl.h> -void pn_sasl_trace(pn_transport_t *transport, pn_trace_t trace); - /** Destructor for the given SASL layer. * * @param[in] sasl the SASL object to free. No longer valid on http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/sasl/sasl.c ---------------------------------------------------------------------- diff --git a/proton-c/src/sasl/sasl.c b/proton-c/src/sasl/sasl.c index 4dabdca..1d27002 100644 --- a/proton-c/src/sasl/sasl.c +++ b/proton-c/src/sasl/sasl.c @@ -265,11 +265,6 @@ pn_sasl_outcome_t pn_sasl_outcome(pn_sasl_t *sasl0) return sasl ? sasl->outcome : PN_SASL_NONE; } -void pn_sasl_trace(pn_transport_t *transport, pn_trace_t trace) -{ - transport->sasl->disp->trace = trace; -} - void pn_sasl_free(pn_transport_t *transport) { if (transport) { @@ -472,7 +467,7 @@ static ssize_t pn_input_read_sasl_header(pn_transport_t* transport, unsigned int } else { transport->io_layers[layer] = &sasl_write_header_layer; } - if (transport->sasl->disp->trace & PN_TRACE_FRM) + if (transport->trace & PN_TRACE_FRM) pn_transport_logf(transport, " <- %s", "SASL"); return SASL_HEADER_LEN; case PNI_PROTOCOL_INSUFFICIENT: @@ -505,8 +500,7 @@ static ssize_t pn_input_read_sasl(pn_transport_t* transport, unsigned int layer, static ssize_t pn_output_write_sasl_header(pn_transport_t *transport, unsigned int layer, char *bytes, size_t size) { - pni_sasl_t *sasl = transport->sasl; - if (sasl->disp->trace & PN_TRACE_FRM) + if (transport->trace & PN_TRACE_FRM) pn_transport_logf(transport, " -> %s", "SASL"); assert(size >= SASL_HEADER_LEN); memmove(bytes, SASL_HEADER, SASL_HEADER_LEN); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/ssl/openssl.c ---------------------------------------------------------------------- diff --git a/proton-c/src/ssl/openssl.c b/proton-c/src/ssl/openssl.c index 0562cae..c2b2bfe 100644 --- a/proton-c/src/ssl/openssl.c +++ b/proton-c/src/ssl/openssl.c @@ -107,8 +107,6 @@ struct pni_ssl_t { size_t in_size; size_t in_count; - pn_trace_t trace; - bool ssl_shutdown; // BIO_ssl_shutdown() called on socket. bool ssl_closed; // shutdown complete, or SSL error bool read_blocked; // SSL blocked until more network data is read @@ -155,7 +153,7 @@ 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, ...) { - if (PN_TRACE_DRV & transport->ssl->trace) { + if (PN_TRACE_DRV & transport->trace) { va_list ap; va_start(ap, fmt); pn_transport_vlogf(transport, fmt, ap); @@ -194,9 +192,9 @@ static void ssl_log_error(const char *fmt, ...) } } -static void ssl_log_clear_data(pni_ssl_t *ssl, const char *data, size_t len) +static void ssl_log_clear_data(pn_transport_t *transport, const char *data, size_t len) { - if (PN_TRACE_RAW & ssl->trace) { + if (PN_TRACE_RAW & transport->trace) { fprintf(stderr, "SSL decrypted data: \""); pn_fprint_data( stderr, data, len ); fprintf(stderr, "\"\n"); @@ -808,8 +806,6 @@ pn_ssl_t *pn_ssl(pn_transport_t *transport) transport->ssl = ssl; - ssl->trace = (transport->disp) ? transport->disp->trace : PN_TRACE_OFF; - return (pn_ssl_t *) transport; } @@ -895,7 +891,7 @@ static ssize_t process_input_ssl( pn_transport_t *transport, unsigned int layer, int read = BIO_read( ssl->bio_ssl, &ssl->inbuf[ssl->in_count], ssl->in_size - ssl->in_count ); if (read > 0) { ssl_log( transport, "Read %d bytes from SSL socket for app", read ); - ssl_log_clear_data( ssl, &ssl->inbuf[ssl->in_count], read ); + ssl_log_clear_data(transport, &ssl->inbuf[ssl->in_count], read ); ssl->in_count += read; work_pending = true; } else { @@ -1194,11 +1190,6 @@ static void release_ssl_socket(pni_ssl_t *ssl) } -void pn_ssl_trace(pn_transport_t *transport, pn_trace_t trace) -{ - transport->ssl->trace = trace; -} - pn_ssl_resume_status_t pn_ssl_resume_status(pn_ssl_t *ssl0) { http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/ssl/ssl-internal.h ---------------------------------------------------------------------- diff --git a/proton-c/src/ssl/ssl-internal.h b/proton-c/src/ssl/ssl-internal.h index 9430af0..f9687d0 100644 --- a/proton-c/src/ssl/ssl-internal.h +++ b/proton-c/src/ssl/ssl-internal.h @@ -31,8 +31,6 @@ // release the SSL context void pn_ssl_free(pn_transport_t *transport); -void pn_ssl_trace(pn_transport_t *transport, pn_trace_t trace); - bool pn_ssl_allow_unsecured(pn_transport_t *transport); #endif /* ssl-internal.h */ http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/transport/transport.c ---------------------------------------------------------------------- diff --git a/proton-c/src/transport/transport.c b/proton-c/src/transport/transport.c index 35ad060..bb59d84 100644 --- a/proton-c/src/transport/transport.c +++ b/proton-c/src/transport/transport.c @@ -212,7 +212,7 @@ ssize_t pn_io_layer_input_autodetect(pn_transport_t *transport, unsigned int lay return PN_EOS; } pni_protocol_type_t protocol = pni_sniff_header(bytes, available); - if (transport->disp->trace & PN_TRACE_DRV) + if (transport->trace & PN_TRACE_DRV) pn_transport_logf(transport, "%s detected", pni_protocol_name(protocol)); switch (protocol) { case PNI_PROTOCOL_SSL: @@ -235,7 +235,7 @@ ssize_t pn_io_layer_input_autodetect(pn_transport_t *transport, unsigned int lay } transport->io_layers[layer] = &sasl_write_header_layer; transport->io_layers[layer+1] = &pni_autodetect_layer; - if (transport->disp->trace & PN_TRACE_FRM) + if (transport->trace & PN_TRACE_FRM) pn_transport_logf(transport, " <- %s", "SASL"); return 8; case PNI_PROTOCOL_AMQP1: @@ -249,7 +249,7 @@ ssize_t pn_io_layer_input_autodetect(pn_transport_t *transport, unsigned int lay } } transport->io_layers[layer] = &amqp_write_header_layer; - if (transport->disp->trace & PN_TRACE_FRM) + if (transport->trace & PN_TRACE_FRM) pn_transport_logf(transport, " <- %s", "AMQP"); return 8; case PNI_PROTOCOL_INSUFFICIENT: @@ -357,6 +357,10 @@ static void pn_transport_initialize(void *object) transport->posted_idle_timeout = false; transport->server = false; + + transport->trace = (pn_env_bool("PN_TRACE_RAW") ? PN_TRACE_RAW : PN_TRACE_OFF) | + (pn_env_bool("PN_TRACE_FRM") ? PN_TRACE_FRM : PN_TRACE_OFF) | + (pn_env_bool("PN_TRACE_DRV") ? PN_TRACE_DRV : PN_TRACE_OFF); } pn_session_t *pn_channel_state(pn_transport_t *transport, uint16_t channel) @@ -1273,7 +1277,7 @@ static ssize_t transport_consume(pn_transport_t *transport) break; } else { assert(n == PN_EOS); - if (transport->disp->trace & (PN_TRACE_RAW | PN_TRACE_FRM)) + if (transport->trace & (PN_TRACE_RAW | PN_TRACE_FRM)) pn_transport_log(transport, " <- EOS"); transport->input_pending = 0; // XXX ??? return n; @@ -1298,7 +1302,7 @@ static ssize_t pn_input_read_amqp_header(pn_transport_t* transport, unsigned int } else { transport->io_layers[layer] = &amqp_write_header_layer; } - if (transport->disp->trace & PN_TRACE_FRM) + if (transport->trace & PN_TRACE_FRM) pn_transport_logf(transport, " <- %s", "AMQP"); return 8; case PNI_PROTOCOL_INSUFFICIENT: @@ -2009,7 +2013,7 @@ int pn_process(pn_transport_t *transport) static ssize_t pn_output_write_amqp_header(pn_transport_t* transport, unsigned int layer, char* bytes, size_t available) { - if (transport->disp->trace & PN_TRACE_FRM) + if (transport->trace & PN_TRACE_FRM) pn_transport_logf(transport, " -> %s", "AMQP"); assert(available >= 8); memmove(bytes, AMQP_HEADER, 8); @@ -2088,7 +2092,7 @@ static ssize_t transport_produce(pn_transport_t *transport) } else { if (transport->output_pending) break; // return what is available - if (transport->disp->trace & (PN_TRACE_RAW | PN_TRACE_FRM)) { + if (transport->trace & (PN_TRACE_RAW | PN_TRACE_FRM)) { if (n < 0) { pn_transport_log(transport, " -> EOS"); } @@ -2117,9 +2121,7 @@ ssize_t pn_transport_output(pn_transport_t *transport, char *bytes, size_t size) void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace) { - if (transport->sasl) pn_sasl_trace(transport, trace); - if (transport->ssl) pn_ssl_trace(transport, trace); - transport->disp->trace = trace; + transport->trace = trace; } void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tracer) http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/e093b8c2/proton-c/src/windows/schannel.c ---------------------------------------------------------------------- diff --git a/proton-c/src/windows/schannel.c b/proton-c/src/windows/schannel.c index 3cc7b9f..88b4a07 100644 --- a/proton-c/src/windows/schannel.c +++ b/proton-c/src/windows/schannel.c @@ -55,7 +55,7 @@ */ static void ssl_log_error(const char *fmt, ...); -static void ssl_log(pn_ssl_t *ssl, const char *fmt, ...); +static void ssl_log(pn_transport_t *transport, const char *fmt, ...); static void ssl_log_error_status(HRESULT status, const char *fmt, ...); /* @@ -335,8 +335,6 @@ struct pni_ssl_t { bool sc_input_shutdown; - pn_trace_t trace; - CredHandle cred_handle; CtxtHandle ctxt_handle; SecPkgContext_StreamSizes sc_sizes; @@ -386,9 +384,9 @@ static void ssl_log_error(const char *fmt, ...) } // @todo: used to avoid littering the code with calls to printf... -static void ssl_log(pni_ssl_t *ssl, const char *fmt, ...) +static void ssl_log(pn_transport_t *transport, const char *fmt, ...) { - if (PN_TRACE_DRV & ssl->trace) { + if (PN_TRACE_DRV & transport->trace) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); @@ -417,9 +415,9 @@ static void ssl_log_error_status(HRESULT status, const char *fmt, ...) fflush(stderr); } -static void ssl_log_clear_data(pni_ssl_t *ssl, const char *data, size_t len) +static void ssl_log_clear_data(pn_transport_t *transport, const char *data, size_t len) { - if (PN_TRACE_RAW & ssl->trace) { + if (PN_TRACE_RAW & transport->trace) { fprintf(stderr, "SSL decrypted data: \""); pn_fprint_data( stderr, data, len ); fprintf(stderr, "\"\n"); @@ -691,7 +689,7 @@ void pn_ssl_free( pn_transport_t *transport) { pni_ssl_t *ssl = transport->ssl; if (!ssl) return; - ssl_log( ssl, "SSL socket freed.\n" ); + ssl_log( transport, "SSL socket freed.\n" ); // clean up Windows per TLS session data before releasing the domain count if (SecIsValidHandle(&ssl->ctxt_handle)) DeleteSecurityContext(&ssl->ctxt_handle); @@ -745,7 +743,6 @@ pn_ssl_t *pn_ssl(pn_transport_t *transport) transport->ssl = ssl; - ssl->trace = (transport->disp) ? transport->disp->trace : PN_TRACE_OFF; SecInvalidateHandle(&ssl->cred_handle); SecInvalidateHandle(&ssl->ctxt_handle); ssl->state = CREATED; @@ -754,11 +751,6 @@ pn_ssl_t *pn_ssl(pn_transport_t *transport) return (pn_ssl_t *)transport; } -void pn_ssl_trace(pn_transport_t *transport, pn_trace_t trace) -{ - transport->ssl->trace = trace; -} - pn_ssl_resume_status_t pn_ssl_resume_status( pn_ssl_t *ssl ) { @@ -812,8 +804,10 @@ const char *tls_version_check(pni_ssl_t *ssl) "peer does not support TLS 1.0 security" : NULL; } -static void ssl_encrypt(pni_ssl_t *ssl, char *app_data, size_t count) +static void ssl_encrypt(pn_transport_t *transport, char *app_data, size_t count) { + pni_ssl_t *ssl = transport->ssl; + // Get SChannel to encrypt exactly one Record. SecBuffer buffs[4]; buffs[0].cbBuffer = ssl->sc_sizes.cbHeader; @@ -841,7 +835,7 @@ static void ssl_encrypt(pni_ssl_t *ssl, char *app_data, size_t count) ssl->sc_out_count = buffs[0].cbBuffer + buffs[1].cbBuffer + buffs[2].cbBuffer; ssl->network_outp = ssl->sc_outbuf; ssl->network_out_pending = ssl->sc_out_count; - ssl_log(ssl, "ssl_encrypt %d network bytes\n", ssl->network_out_pending); + ssl_log(transport, "ssl_encrypt %d network bytes\n", ssl->network_out_pending); } // Returns true if decryption succeeded (even for empty content) @@ -942,7 +936,7 @@ static void client_handshake_init(pn_transport_t *transport) ssl->network_out_pending = ssl->sc_out_count; // the token is the whole quantity to send ssl->network_outp = ssl->sc_outbuf; - ssl_log(ssl, "Sending client hello %d bytes\n", ssl->network_out_pending); + ssl_log(transport, "Sending client hello %d bytes\n", ssl->network_out_pending); } else { ssl_log_error_status(status, "InitializeSecurityContext failed"); ssl_failed(transport, 0); @@ -993,7 +987,7 @@ static void client_handshake( pn_transport_t* transport) { case SEC_E_INCOMPLETE_MESSAGE: // Not enough - get more data from the server then try again. // Leave input buffers untouched. - ssl_log(ssl, "client handshake: incomplete record\n"); + ssl_log(transport, "client handshake: incomplete record\n"); ssl->sc_in_incomplete = true; return; @@ -1004,7 +998,7 @@ static void client_handshake( pn_transport_t* transport) { // the token is the whole quantity to send ssl->network_out_pending = ssl->sc_out_count; ssl->network_outp = ssl->sc_outbuf; - ssl_log(ssl, "client handshake token %d bytes\n", ssl->network_out_pending); + ssl_log(transport, "client handshake token %d bytes\n", ssl->network_out_pending); break; case SEC_E_OK: @@ -1015,7 +1009,7 @@ static void client_handshake( pn_transport_t* transport) { // the token is the whole quantity to send ssl->network_out_pending = ssl->sc_out_count; ssl->network_outp = ssl->sc_outbuf; - ssl_log(ssl, "client shutdown token %d bytes\n", ssl->network_out_pending); + ssl_log(transport, "client shutdown token %d bytes\n", ssl->network_out_pending); } else { ssl->state = SSL_CLOSED; } @@ -1051,13 +1045,13 @@ static void client_handshake( pn_transport_t* transport) { ssl->state = RUNNING; ssl->max_data_size = max - ssl->sc_sizes.cbHeader - ssl->sc_sizes.cbTrailer; - ssl_log(ssl, "client handshake successful %d max record size\n", max); + ssl_log(transport, "client handshake successful %d max record size\n", max); break; case SEC_I_CONTEXT_EXPIRED: // ended before we got going default: - ssl_log(ssl, "client handshake failed %d\n", (int) status); + ssl_log(transport, "client handshake failed %d\n", (int) status); ssl_failed(transport, 0); break; } @@ -1121,7 +1115,7 @@ static void server_handshake(pn_transport_t* transport) case SEC_E_INCOMPLETE_MESSAGE: // Not enough - get more data from the client then try again. // Leave input buffers untouched. - ssl_log(ssl, "server handshake: incomplete record\n"); + ssl_log(transport, "server handshake: incomplete record\n"); ssl->sc_in_incomplete = true; return; @@ -1137,7 +1131,7 @@ static void server_handshake(pn_transport_t* transport) // the token is the whole quantity to send ssl->network_out_pending = ssl->sc_out_count; ssl->network_outp = ssl->sc_outbuf; - ssl_log(ssl, "server shutdown token %d bytes\n", ssl->network_out_pending); + ssl_log(transport, "server shutdown token %d bytes\n", ssl->network_out_pending); } else { ssl->state = SSL_CLOSED; } @@ -1167,13 +1161,13 @@ static void server_handshake(pn_transport_t* transport) ssl->state = RUNNING; ssl->max_data_size = max - ssl->sc_sizes.cbHeader - ssl->sc_sizes.cbTrailer; - ssl_log(ssl, "server handshake successful %d max record size\n", max); + ssl_log(transport, "server handshake successful %d max record size\n", max); break; case SEC_I_CONTEXT_EXPIRED: // ended before we got going default: - ssl_log(ssl, "server handshake failed %d\n", (int) status); + ssl_log(transport, "server handshake failed %d\n", (int) status); ssl_failed(transport, 0); break; } @@ -1185,7 +1179,7 @@ static void server_handshake(pn_transport_t* transport) // the token is the whole quantity to send ssl->network_out_pending = ssl->sc_out_count; ssl->network_outp = ssl->sc_outbuf; - ssl_log(ssl, "server handshake token %d bytes\n", ssl->network_out_pending); + ssl_log(transport, "server handshake token %d bytes\n", ssl->network_out_pending); } if (token_buffs[1].BufferType == SECBUFFER_EXTRA && token_buffs[1].cbBuffer > 0 && @@ -1219,7 +1213,7 @@ static bool grow_inbuf2(pn_transport_t *transport, size_t minimum_size) { if (max_frame != 0) { if (old_capacity >= max_frame) { // already big enough - ssl_log(transport->ssl, "Application expecting %d bytes (> negotiated maximum frame)\n", new_capacity); + ssl_log(transport, "Application expecting %d bytes (> negotiated maximum frame)\n", new_capacity); ssl_failed(transport, "TLS: transport maximimum frame size error"); return false; } @@ -1228,7 +1222,7 @@ static bool grow_inbuf2(pn_transport_t *transport, size_t minimum_size) { size_t extra_bytes = new_capacity - pn_buffer_size(ssl->inbuf2); int err = pn_buffer_ensure(ssl->inbuf2, extra_bytes); if (err) { - ssl_log(ssl, "TLS memory allocation failed for %d bytes\n", max_frame); + ssl_log(transport, "TLS memory allocation failed for %d bytes\n", max_frame); ssl_failed(transport, "TLS memory allocation failed"); return false; } @@ -1248,7 +1242,7 @@ static void start_ssl_shutdown(pn_transport_t *transport) if (ssl->queued_shutdown) return; ssl->queued_shutdown = true; - ssl_log(ssl, "Shutting down SSL connection...\n"); + ssl_log(transport, "Shutting down SSL connection...\n"); DWORD shutdown = SCHANNEL_SHUTDOWN; SecBuffer shutBuff; @@ -1414,7 +1408,7 @@ static void read_closed(pn_transport_t *transport, unsigned int layer, ssize_t e static ssize_t process_input_ssl(pn_transport_t *transport, unsigned int layer, const char *input_data, size_t available) { pni_ssl_t *ssl = transport->ssl; - ssl_log( ssl, "process_input_ssl( data size=%d )\n",available ); + ssl_log( transport, "process_input_ssl( data size=%d )\n",available ); ssize_t consumed = 0; ssize_t forwarded = 0; bool new_app_input; @@ -1491,7 +1485,7 @@ static ssize_t process_input_ssl(pn_transport_t *transport, unsigned int layer, rewind_sc_inbuf(ssl); } } - ssl_log(ssl, "Next decryption, %d left over\n", available); + ssl_log(transport, "Next decryption, %d left over\n", available); } } @@ -1513,7 +1507,7 @@ static ssize_t process_input_ssl(pn_transport_t *transport, unsigned int layer, forwarded += count; // advance() can increase app_inbytes.size if double buffered app_inbytes_advance(transport, count); - ssl_log(ssl, "Application consumed %d bytes from peer\n", (int) count); + ssl_log(transport, "Application consumed %d bytes from peer\n", (int) count); } else if (count == 0) { size_t old_size = ssl->app_inbytes.size; app_inbytes_advance(transport, 0); @@ -1522,13 +1516,13 @@ static ssize_t process_input_ssl(pn_transport_t *transport, unsigned int layer, } } else { // count < 0 - ssl_log(ssl, "Application layer closed its input, error=%d (discarding %d bytes)\n", + ssl_log(transport, "Application layer closed its input, error=%d (discarding %d bytes)\n", (int) count, (int)ssl->app_inbytes.size); app_inbytes_advance(transport, ssl->app_inbytes.size); // discard read_closed(transport, layer, count); } } else { - ssl_log(ssl, "Input closed discard %d bytes\n", + ssl_log(transport, "Input closed discard %d bytes\n", (int)ssl->app_inbytes.size); app_inbytes_advance(transport, ssl->app_inbytes.size); // discard } @@ -1544,7 +1538,7 @@ static ssize_t process_input_ssl(pn_transport_t *transport, unsigned int layer, transport->io_layers[layer] = &ssl_input_closed_layer; } } - ssl_log(ssl, "process_input_ssl() returning %d, forwarded %d\n", (int) consumed, (int) forwarded); + ssl_log(transport, "process_input_ssl() returning %d, forwarded %d\n", (int) consumed, (int) forwarded); return consumed; } @@ -1552,7 +1546,7 @@ static ssize_t process_output_ssl( pn_transport_t *transport, unsigned int layer { pni_ssl_t *ssl = transport->ssl; if (!ssl) return PN_EOS; - ssl_log( ssl, "process_output_ssl( max_len=%d )\n",max_len ); + ssl_log( transport, "process_output_ssl( max_len=%d )\n",max_len ); ssize_t written = 0; ssize_t total_app_bytes = 0; @@ -1591,17 +1585,17 @@ static ssize_t process_output_ssl( pn_transport_t *transport, unsigned int layer if (app_bytes > 0) { app_outp += app_bytes; remaining -= app_bytes; - ssl_log( ssl, "Gathered %d bytes from app to send to peer\n", app_bytes ); + ssl_log( transport, "Gathered %d bytes from app to send to peer\n", app_bytes ); } else { if (app_bytes < 0) { - ssl_log(ssl, "Application layer closed its output, error=%d (%d bytes pending send)\n", + ssl_log(transport, "Application layer closed its output, error=%d (%d bytes pending send)\n", (int) app_bytes, (int) ssl->network_out_pending); ssl->app_output_closed = app_bytes; if (ssl->app_input_closed) ssl->state = SHUTTING_DOWN; } else if (total_app_bytes == 0 && ssl->app_input_closed) { // We've drained all the App layer can provide - ssl_log(ssl, "Application layer blocked on input, closing\n"); + ssl_log(transport, "Application layer blocked on input, closing\n"); ssl->state = SHUTTING_DOWN; ssl->app_output_closed = PN_ERR; } @@ -1609,7 +1603,7 @@ static ssize_t process_output_ssl( pn_transport_t *transport, unsigned int layer } while (app_bytes > 0); if (app_outp > app_data) { work_pending = (max_len > 0); - ssl_encrypt(ssl, app_data, app_outp - app_data); + ssl_encrypt(transport, app_data, app_outp - app_data); } } @@ -1631,7 +1625,7 @@ static ssize_t process_output_ssl( pn_transport_t *transport, unsigned int layer transport->io_layers[layer] = &ssl_output_closed_layer; } } - ssl_log(ssl, "process_output_ssl() returning %d\n", (int) written); + ssl_log(transport, "process_output_ssl() returning %d\n", (int) written); return written; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
