diff options
author | Guy Harris <guy@alum.mit.edu> | 2010-08-16 15:02:12 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2010-08-16 15:02:12 -0700 |
commit | a914680c580280ae73c8d246506f7fbba11a64cb (patch) | |
tree | 0041f95e85266e7190ebfb07caa041165126fd7f | |
parent | a81dd6aad47ff8ea57d8d7199b37fc30d4004fb7 (diff) | |
download | tcpdump-a914680c580280ae73c8d246506f7fbba11a64cb.tar.gz |
Print AppleTalk layer-3 network numbers as 16-bit unsigned decimal numbers.
Pick up from FreeBSD:
revision 1.3
date: 1996/09/11 06:18:26; author: pst; state: Exp; lines: +9 -12
branches: 1.3.2;
Print appletalk layer 3 addresses as 16 bit unsigned decimal numbers,
not two 8 bit values. This conforms to industry standard.
These changes have been sent back to LBL.
Inside AppleTalk(R), Second Edition speaks of node numbers as 16-bit.
-rw-r--r-- | print-atalk.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/print-atalk.c b/print-atalk.c index fe51cba0..995fcff5 100644 --- a/print-atalk.c +++ b/print-atalk.c @@ -543,26 +543,24 @@ ataddr_string(u_short atnet, u_char athost) if (first && (first = 0, !nflag) && (fp = fopen("/etc/atalk.names", "r"))) { char line[256]; - int i1, i2, i3; + int i1, i2; while (fgets(line, sizeof(line), fp)) { if (line[0] == '\n' || line[0] == 0 || line[0] == '#') continue; - if (sscanf(line, "%d.%d.%d %256s", &i1, &i2, &i3, - nambuf) == 4) + if (sscanf(line, "%d.%d %256s", &i1, &i2, nambuf) == 3) /* got a hostname. */ - i3 |= ((i1 << 8) | i2) << 8; - else if (sscanf(line, "%d.%d %256s", &i1, &i2, - nambuf) == 3) + i2 |= (i1 << 8); + else if (sscanf(line, "%d %256s", &i1, nambuf) == 2) /* got a net name */ - i3 = (((i1 << 8) | i2) << 8) | 255; + i2 = (i1 << 8) | 255; else continue; - for (tp = &hnametable[i3 & (HASHNAMESIZE-1)]; + for (tp = &hnametable[i2 & (HASHNAMESIZE-1)]; tp->nxt; tp = tp->nxt) ; - tp->addr = i3; + tp->addr = i2; tp->nxt = newhnamemem(); tp->name = strdup(nambuf); } @@ -588,11 +586,9 @@ ataddr_string(u_short atnet, u_char athost) tp->addr = (atnet << 8) | athost; tp->nxt = newhnamemem(); if (athost != 255) - (void)snprintf(nambuf, sizeof(nambuf), "%d.%d.%d", - atnet >> 8, atnet & 0xff, athost); + (void)snprintf(nambuf, sizeof(nambuf), "%d.%d", atnet, athost); else - (void)snprintf(nambuf, sizeof(nambuf), "%d.%d", atnet >> 8, - atnet & 0xff); + (void)snprintf(nambuf, sizeof(nambuf), "%d", atnet); tp->name = strdup(nambuf); return (tp->name); |