diff options
author | pst <pst@FreeBSD.org> | 1996-08-19 21:33:43 +0000 |
---|---|---|
committer | pst <pst@FreeBSD.org> | 1996-08-19 21:33:43 +0000 |
commit | 2e90abeceef30ac51c437a1540ce62dbd9953628 (patch) | |
tree | 0dbccd57910423ac9b9512e2f54dece2bde088dd /contrib/tcpdump/addrtoname.c | |
parent | a2db1903fd02344a1b5142476064c20b706905f9 (diff) | |
download | FreeBSD-src-2e90abeceef30ac51c437a1540ce62dbd9953628.zip FreeBSD-src-2e90abeceef30ac51c437a1540ce62dbd9953628.tar.gz |
Handle IS-IS IIH messages and print NSAPs in canonical format.
Submitted by: Tony Li <tli@jnx.com>
Diffstat (limited to 'contrib/tcpdump/addrtoname.c')
-rw-r--r-- | contrib/tcpdump/addrtoname.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/contrib/tcpdump/addrtoname.c b/contrib/tcpdump/addrtoname.c index af2a757..8bfc3c3 100644 --- a/contrib/tcpdump/addrtoname.c +++ b/contrib/tcpdump/addrtoname.c @@ -467,15 +467,16 @@ isonsap_string(const u_char *nsap) if (tp->e_name) return tp->e_name; - tp->e_name = cp = (char *)malloc(nlen * 2 + 2); + tp->e_name = cp = (char *)malloc(nlen * 2 + 2 + (nlen>>1)); if (cp == NULL) error("isonsap_string: malloc"); nsap++; - *cp++ = '/'; - for (i = nlen; (int)--i >= 0;) { + for (i = 0; i < nlen; i++) { *cp++ = hex[*nsap >> 4]; *cp++ = hex[*nsap++ & 0xf]; + if (((i & 1) == 0) && (i + 1 < nlen)) + *cp++ = '.'; } *cp = '\0'; return (tp->e_name); |