From fa7702afe4f1e0a7f41978f139d0ab29e62b423a Mon Sep 17 00:00:00 2001 From: kbyanc Date: Wed, 8 May 2002 00:55:29 +0000 Subject: 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 --- usr.sbin/arp/arp.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'usr.sbin/arp/arp.c') 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 #include #include +#include #include #include @@ -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"); -- cgit v1.1