diff options
author | kbyanc <kbyanc@FreeBSD.org> | 2002-05-08 00:55:29 +0000 |
---|---|---|
committer | kbyanc <kbyanc@FreeBSD.org> | 2002-05-08 00:55:29 +0000 |
commit | fa7702afe4f1e0a7f41978f139d0ab29e62b423a (patch) | |
tree | c2c0c0d11df816e7f0ea7cf1eae75b9ec4e7022c /usr.sbin/arp | |
parent | abc14dea1178ab9607fbe8c7db9f378ea30c6300 (diff) | |
download | FreeBSD-src-fa7702afe4f1e0a7f41978f139d0ab29e62b423a.zip FreeBSD-src-fa7702afe4f1e0a7f41978f139d0ab29e62b423a.tar.gz |
Update ARP to access token-ring source routing information at it's new
location.
Not tested by: me (sorry!)
Sponsored by: NTT Multimedia Communications Labs
Diffstat (limited to 'usr.sbin/arp')
-rw-r--r-- | usr.sbin/arp/arp.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c index cff8875..791ed5b 100644 --- a/usr.sbin/arp/arp.c +++ b/usr.sbin/arp/arp.c @@ -64,6 +64,7 @@ static const char rcsid[] = #include <net/if.h> #include <net/if_dl.h> #include <net/if_types.h> +#include <net/iso88025.h> #include <net/route.h> #include <netinet/in.h> @@ -489,6 +490,7 @@ print_entry(struct sockaddr_dl *sdl, { const char *host; struct hostent *hp; + struct iso88025_sockaddr_dl_data *trld; char ifname[IF_NAMESIZE]; int seg; @@ -529,6 +531,14 @@ print_entry(struct sockaddr_dl *sdl, break; case IFT_ISO88025: printf(" [token-ring]"); + trld = SDL_ISO88025(sdl); + if (trld->trld_rcf != 0) { + printf(" rt=%x", ntohs(trld->trld_rcf)); + for (seg = 0; + seg < ((TR_RCF_RIFLEN(trld->trld_rcf) - 2 ) / 2); + seg++) + printf(":%x", ntohs(trld->trld_route[seg])); + } break; case IFT_FDDI: printf(" [fddi]"); @@ -542,11 +552,6 @@ print_entry(struct sockaddr_dl *sdl, default: break; } - if (sdl->sdl_rcf != NULL) { - printf(" rt=%x", ntohs(sdl->sdl_rcf)); - for (seg = 0; seg < ((((ntohs(sdl->sdl_rcf) & 0x1f00) >> 8) - 2 ) / 2); seg++) - printf(":%x", ntohs(sdl->sdl_route[seg])); - } printf("\n"); |