From f430713c8c5e579b513ffa16133b8c178978c5b6 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Thu, 17 Aug 2023 14:32:53 +0100 Subject: [PATCH] Add a -trace option to quicserver to enable tracing of the communication Trace output of the communication with the client is dumped to stderr if the -trace options is supplied Reviewed-by: Tomas Mraz Reviewed-by: Hugo Landau (Merged from https://github.com/openssl/openssl/pull/21800) --- util/quicserver.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/util/quicserver.c b/util/quicserver.c index 72f9fd9f57fdb..25ac21691fbc3 100644 --- a/util/quicserver.c +++ b/util/quicserver.c @@ -132,14 +132,14 @@ static BIO *create_dgram_bio(int family, const char *hostname, const char *port) static void usage(void) { - BIO_printf(bio_err, "quicserver [-6] hostname port certfile keyfile\n"); + BIO_printf(bio_err, "quicserver [-6][-trace] hostname port certfile keyfile\n"); } int main(int argc, char *argv[]) { QUIC_TSERVER_ARGS tserver_args = {0}; QUIC_TSERVER *qtserv = NULL; - int ipv6 = 0; + int ipv6 = 0, trace = 0; int argnext = 1; BIO *bio = NULL; char *hostname, *port, *certfile, *keyfile; @@ -162,6 +162,8 @@ int main(int argc, char *argv[]) break; if (strcmp(argv[argnext], "-6") == 0) { ipv6 = 1; + } else if(strcmp(argv[argnext], "-trace") == 0) { + trace = 1; } else { BIO_printf(bio_err, "Unrecognised argument %s\n", argv[argnext]); usage(); @@ -207,6 +209,9 @@ int main(int argc, char *argv[]) /* Ownership of the BIO is passed to qtserv */ bio = NULL; + if (trace) + ossl_quic_tserver_set_msg_callback(qtserv, SSL_trace, bio_err); + /* Read the request */ do { if (first)