X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/36c679753bc9b4d744477ae5fcdc2c75cdfc715f..refs/pull/471/head:/util-print.c?ds=sidebyside diff --git a/util-print.c b/util-print.c index 32eca56f..bcb14337 100644 --- a/util-print.c +++ b/util-print.c @@ -39,19 +39,20 @@ #include "config.h" #endif -#include +#include #include #ifdef HAVE_FCNTL_H #include #endif +#include #include #include #include #include -#include "interface.h" +#include "netdissect.h" #include "ascii_strcasecmp.h" #include "timeval-operations.h" @@ -65,6 +66,23 @@ int32_t thiszone; /* seconds offset from gmt to local time */ #define TOKBUFSIZE 128 +/* + * Print out a character, filtering out the non-printable ones + */ +void +fn_print_char(netdissect_options *ndo, u_char c) +{ + if (!ND_ISASCII(c)) { + c = ND_TOASCII(c); + ND_PRINT((ndo, "M-")); + } + if (!ND_ISPRINT(c)) { + c ^= 0x40; /* DEL to ?, others to alpha */ + ND_PRINT((ndo, "^")); + } + ND_PRINT((ndo, "%c", c)); +} + /* * Print out a null-terminated filename (or other ascii string). * If ep is NULL, assume no truncation check is needed. @@ -475,7 +493,7 @@ bittok2str(register const struct tok *lp, register const char *fmt, /* * Convert a value to a string using an array; the macro - * tok2strary() in is the public interface to + * tok2strary() in is the public interface to * this function and ensures that the second argument is * correct for bounds-checking. */ @@ -524,7 +542,6 @@ mask2plen(uint32_t mask) return (prefix_len); } -#ifdef INET6 int mask62plen(const u_char *mask) { @@ -551,7 +568,6 @@ mask62plen(const u_char *mask) } return (cidr_len); } -#endif /* INET6 */ /* * Routine to print out information for text-based protocols such as FTP,