summaryrefslogtreecommitdiffstats
path: root/usr.sbin/arp/arp.c
diff options
context:
space:
mode:
authorkbyanc <kbyanc@FreeBSD.org>2002-05-08 00:55:29 +0000
committerkbyanc <kbyanc@FreeBSD.org>2002-05-08 00:55:29 +0000
commitfa7702afe4f1e0a7f41978f139d0ab29e62b423a (patch)
treec2c0c0d11df816e7f0ea7cf1eae75b9ec4e7022c /usr.sbin/arp/arp.c
parentabc14dea1178ab9607fbe8c7db9f378ea30c6300 (diff)
downloadFreeBSD-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/arp.c')
-rw-r--r--usr.sbin/arp/arp.c15
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");
OpenPOWER on IntegriCloud