# HG changeset patch # User Mychaela Falconia # Date 1448774561 0 # Node ID ca65f5adf1afd06b74f092c865a08bb876615206 # Parent 0d7cc054ef7252d9f6711f7076ed6a641bd6ef34 rvinterf: print old ASCII GPF traces emitted by 20020917 firmware on D-Sample diff -r 0d7cc054ef72 -r ca65f5adf1af rvinterf/libg23/fmtdispatch.c --- a/rvinterf/libg23/fmtdispatch.c Sun Nov 15 04:26:10 2015 +0000 +++ b/rvinterf/libg23/fmtdispatch.c Sun Nov 29 05:22:41 2015 +0000 @@ -54,7 +54,7 @@ } static void -print_malformed(rxpkt, rxpkt_len, outbuf) +print_unknown_bin(rxpkt, rxpkt_len, outbuf) u_char *rxpkt; char *outbuf; { @@ -71,6 +71,47 @@ *dp = '\0'; } +static void +print_old_ascii(rxpkt, rxpkt_len, outbuf) + u_char *rxpkt; + char *outbuf; +{ + char *dp; + int txtlen = rxpkt_len - 1; + + dp = outbuf; + strcpy(dp, "GPF ASC: "); + dp += 9; + bcopy(rxpkt + 1, dp, txtlen); + dp += txtlen; + *dp = '\0'; +} + +static int +is_old_ascii(rxpkt, rxpkt_len) + u_char *rxpkt; +{ + int i, c; + + for (i = 1; i < rxpkt_len; i++) { + c = rxpkt[i]; + if (c < ' ' || c > '~') + return(0); + } + return(1); +} + +static void +print_malformed(rxpkt, rxpkt_len, outbuf) + u_char *rxpkt; + char *outbuf; +{ + if (is_old_ascii(rxpkt, rxpkt_len)) + print_old_ascii(rxpkt, rxpkt_len, outbuf); + else + print_unknown_bin(rxpkt, rxpkt_len, outbuf); +} + void format_g23_packet(rxpkt, rxpkt_len, outbuf) u_char *rxpkt;