X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/99c03187afaf73b2816aa4047d440efb0e9136c6..fc80a87e4c7e921dca5edcf53373f60a76123a41:/util.c diff --git a/util.c b/util.c index ad7e3fde..06820a35 100644 --- a/util.c +++ b/util.c @@ -20,8 +20,8 @@ */ #ifndef lint -static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/util.c,v 1.85 2003-04-21 16:59:52 fenner Exp $ (LBL)"; +static const char rcsid[] _U_ = + "@(#) $Header: /tcpdump/master/tcpdump/util.c,v 1.93 2004-04-29 02:15:16 mcr Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -199,27 +199,9 @@ relts_print(int secs) */ int -print_unknown_data(const u_char *cp,const char *lf,int len) +print_unknown_data(const u_char *cp,const char *ident,int len) { - int i; - - if (len ==0) - return(0); - - printf("%s0x0000: ",lf); - for(i=0;is != NULL) { if (lp->v == v) return (lp->s); @@ -239,8 +219,25 @@ tok2str(register const struct tok *lp, register const char *fmt, } if (fmt == NULL) fmt = "#%d"; - (void)snprintf(buf, sizeof(buf), fmt, v); - return (buf); + + (void)snprintf(buf, bufsize, fmt, v); + return (const char *)buf; +} + +/* + * Convert a token value to a string; use "fmt" if not found. + */ +const char * +tok2str(register const struct tok *lp, register const char *fmt, + register int v) +{ + static char buf[4][128]; + static int idx = 0; + char *ret; + + ret = buf[idx]; + idx = (idx+1) & 3; + return tok2strbuf(lp, fmt, v, ret, sizeof(buf[0])); } /* @@ -249,7 +246,7 @@ tok2str(register const struct tok *lp, register const char *fmt, */ char * bittok2str(register const struct tok *lp, register const char *fmt, - register int v) + register int v) { static char buf[256]; /* our stringbuffer */ int buflen=0; @@ -328,15 +325,15 @@ mask2plen (u_int32_t mask) 0xffffff80, 0xffffffc0, 0xffffffe0, 0xfffffff0, 0xfffffff8, 0xfffffffc, 0xfffffffe, 0xffffffff }; - int prefix_len = 33; + int prefix_len = 32; - /* lets see if we can transform the mask into a prefixlen */ - while (prefix_len >= 0) { - if (bitmasks[prefix_len] == mask) - break; - prefix_len--; - } - return (prefix_len); + /* let's see if we can transform the mask into a prefixlen */ + while (prefix_len >= 0) { + if (bitmasks[prefix_len] == mask) + break; + prefix_len--; + } + return (prefix_len); } /* VARARGS */