diff options
author | sumikawa <sumikawa@FreeBSD.org> | 2000-10-09 09:28:49 +0000 |
---|---|---|
committer | sumikawa <sumikawa@FreeBSD.org> | 2000-10-09 09:28:49 +0000 |
commit | 3231981619fced584225d26464095abaa710d986 (patch) | |
tree | 91f1c8eb599e7ff79ed414b9e54416296d8e6335 /usr.sbin/ndp/ndp.c | |
parent | a8492d4f89c0c40ac54ac7b13d75d67c2c55a3e9 (diff) | |
download | FreeBSD-src-3231981619fced584225d26464095abaa710d986.zip FreeBSD-src-3231981619fced584225d26464095abaa710d986.tar.gz |
- simplify option flags
- do not print header when using -c
- linklocal address are not cleared when using -c
Obtained from: KAME
Diffstat (limited to 'usr.sbin/ndp/ndp.c')
-rw-r--r-- | usr.sbin/ndp/ndp.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/usr.sbin/ndp/ndp.c b/usr.sbin/ndp/ndp.c index 8010c19..a01886a 100644 --- a/usr.sbin/ndp/ndp.c +++ b/usr.sbin/ndp/ndp.c @@ -1,5 +1,5 @@ /* $FreeBSD$ */ -/* $KAME: ndp.c,v 1.41 2000/07/04 12:54:11 jinmei Exp $ */ +/* $KAME: ndp.c,v 1.46 2000/10/09 09:17:10 sumikawa Exp $ */ /* * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. @@ -122,7 +122,7 @@ #define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) static int pid; -static int fflag; +static int cflag; static int nflag; static int tflag; static int32_t thiszone; /* time difference with gmt */ @@ -168,7 +168,7 @@ main(argc, argv) char **argv; { int ch; - int aflag = 0, cflag = 0, dflag = 0, sflag = 0, Hflag = 0, + int aflag = 0, dflag = 0, sflag = 0, Hflag = 0, pflag = 0, rflag = 0, Pflag = 0, Rflag = 0; pid = getpid(); @@ -179,7 +179,6 @@ main(argc, argv) aflag = 1; break; case 'c': - fflag = 1; cflag = 1; break; case 'd': @@ -562,7 +561,7 @@ dump(addr) char flgbuf[8]; /* Print header */ - if (!tflag) + if (!tflag && !cflag) printf("%-31.31s %-17.17s %6.6s %-9.9s %2s %4s %4s\n", "Neighbor", "Linklayer Address", "Netif", "Expire", "St", "Flgs", "Prbs"); @@ -597,24 +596,23 @@ again:; found_entry = 1; } else if (IN6_IS_ADDR_MULTICAST(&sin->sin6_addr)) continue; - if (fflag == 1) { - delete((char *)inet_ntop(AF_INET6, &sin->sin6_addr, - ntop_buf, sizeof(ntop_buf))); - continue; - } - if (IN6_IS_ADDR_LINKLOCAL(&sin->sin6_addr) || IN6_IS_ADDR_MC_LINKLOCAL(&sin->sin6_addr)) { /* XXX: should scope id be filled in the kernel? */ if (sin->sin6_scope_id == 0) sin->sin6_scope_id = sdl->sdl_index; - - /* XXX: KAME specific hack; removed the embedded id */ +#ifdef __KAME__ + /* KAME specific hack; removed the embedded id */ *(u_int16_t *)&sin->sin6_addr.s6_addr[2] = 0; +#endif } getnameinfo((struct sockaddr *)sin, sin->sin6_len, host_buf, sizeof(host_buf), NULL, 0, NI_WITHSCOPEID | (nflag ? NI_NUMERICHOST : 0)); + if (cflag == 1) { + delete(host_buf); + continue; + } gettimeofday(&time, 0); if (tflag) ts_print(&time); |