From: Daniel Lenski Date: Tue, 4 Jun 2019 18:09:31 +0000 (-0700) Subject: make dump_buf_hex() show printable characters as well X-Git-Tag: v8.04~54 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a59708316ee33b84feeedb8226fd74bb8f969fc6;p=users%2Fdwmw2%2Fopenconnect.git make dump_buf_hex() show printable characters as well Signed-off-by: Daniel Lenski --- diff --git a/http.c b/http.c index fa85c496..243553e0 100644 --- a/http.c +++ b/http.c @@ -798,17 +798,22 @@ void dump_buf(struct openconnect_info *vpninfo, char prefix, char *buf) void dump_buf_hex(struct openconnect_info *vpninfo, int loglevel, char prefix, unsigned char *buf, int len) { char linebuf[80]; - int i; + int i, j; - for (i = 0; i < len; i++) { - if (i % 16 == 0) { - if (i) - vpn_progress(vpninfo, loglevel, "%c %s\n", prefix, linebuf); - sprintf(linebuf, "%04x:", i); + for (i = 0; i < len; i+=16) { + sprintf(linebuf, "%04x:", i); + for (j = i; j < i+16; j++) { + if (j < len) + sprintf(linebuf + strlen(linebuf), " %02x", buf[j]); + else + sprintf(linebuf + strlen(linebuf), " "); } - sprintf(linebuf + strlen(linebuf), " %02x", buf[i]); + sprintf(linebuf + strlen(linebuf), " |"); + for (j = i; j < i+16 && j < len; j++) + sprintf(linebuf + strlen(linebuf), "%c", isprint(buf[j]) || buf[j]==' ' ? buf[j] : '.'); + sprintf(linebuf + strlen(linebuf), "|"); + vpn_progress(vpninfo, loglevel, "%c %s\n", prefix, linebuf); } - vpn_progress(vpninfo, loglevel, "%c %s\n", prefix, linebuf); } /* Inputs: