diff options
| author | Doug Rabson <dfr@FreeBSD.org> | 2004-06-13 10:57:10 +0000 |
|---|---|---|
| committer | Doug Rabson <dfr@FreeBSD.org> | 2004-06-13 10:57:10 +0000 |
| commit | 21816de34f92bc86e4411c5ab2c460275c84803c (patch) | |
| tree | 86a0404685f09f96c27fc4133d14733ca80f828a /usr.sbin/arp | |
| parent | b8b3323469c7fac150559f9acbc488cc2cd79f74 (diff) | |
Notes
Diffstat (limited to 'usr.sbin/arp')
| -rw-r--r-- | usr.sbin/arp/arp.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c index cd35cb0c8c74..0a35859fcbdc 100644 --- a/usr.sbin/arp/arp.c +++ b/usr.sbin/arp/arp.c @@ -526,9 +526,16 @@ print_entry(struct sockaddr_dl *sdl, nflag = 1; } printf("%s (%s) at ", host, inet_ntoa(addr->sin_addr)); - if (sdl->sdl_alen) - printf("%s", ether_ntoa((struct ether_addr *)LLADDR(sdl))); - else + if (sdl->sdl_alen) { + if (sdl->sdl_type == IFT_ETHER && + sdl->sdl_alen == ETHER_ADDR_LEN) + printf("%s", ether_ntoa((struct ether_addr *)LLADDR(sdl))); + else { + int n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0; + + printf("%s", link_ntoa(sdl) + n); + } + } else printf("(incomplete)"); if (if_indextoname(sdl->sdl_index, ifname) != NULL) printf(" on %s", ifname); @@ -568,6 +575,9 @@ print_entry(struct sockaddr_dl *sdl, case IFT_L2VLAN: printf(" [vlan]"); break; + case IFT_IEEE1394: + printf(" [firewire]"); + break; default: break; } |
