diff options
author | mpi <mpi@openbsd.org> | 2014-09-03 10:39:41 +0000 |
---|---|---|
committer | mpi <mpi@openbsd.org> | 2014-09-03 10:39:41 +0000 |
commit | 48ccdf104cae4d7e85b0ec719f2dd0d13ab68d07 (patch) | |
tree | 04232abe1cf46823eefa158fe3e9d6553eeb70a5 | |
parent | When a route to prefix (connected route) is added, if its associated (diff) | |
download | wireguard-openbsd-48ccdf104cae4d7e85b0ec719f2dd0d13ab68d07.tar.xz wireguard-openbsd-48ccdf104cae4d7e85b0ec719f2dd0d13ab68d07.zip |
Be coherent in the way arp(8) and ndp(8) display local entries and
use a new flag `l' to ditinguish them.
Also skip broadcast entries, they are not reall ARP entries and will
never be resolved to anything, requested by deraadt@.
ok bluhm@
-rw-r--r-- | usr.sbin/arp/arp.8 | 8 | ||||
-rw-r--r-- | usr.sbin/arp/arp.c | 9 | ||||
-rw-r--r-- | usr.sbin/ndp/ndp.8 | 8 | ||||
-rw-r--r-- | usr.sbin/ndp/ndp.c | 16 |
4 files changed, 21 insertions, 20 deletions
diff --git a/usr.sbin/arp/arp.8 b/usr.sbin/arp/arp.8 index 620249b6a8c..db626a974ba 100644 --- a/usr.sbin/arp/arp.8 +++ b/usr.sbin/arp/arp.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: arp.8,v 1.34 2014/08/21 10:23:47 mpi Exp $ +.\" $OpenBSD: arp.8,v 1.35 2014/09/03 10:39:41 mpi Exp $ .\" $NetBSD: arp.8,v 1.7 1995/03/01 11:50:59 chopps Exp $ .\" .\" Copyright (c) 1985, 1991, 1993 @@ -30,7 +30,7 @@ .\" .\" from: @(#)arp.8 8.1 (Berkeley) 6/6/93 .\" -.Dd $Mdocdate: August 21 2014 $ +.Dd $Mdocdate: September 3 2014 $ .Dt ARP 8 .Os .Sh NAME @@ -99,7 +99,9 @@ or it will never expire. .It Flags Flags on the ARP entry, in a single letter. -They are: proxy +They are: local +.Pq Sq l , +proxy .Pq Sq P and published .Pq Sq p . diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c index 63729575998..8f243a4c834 100644 --- a/usr.sbin/arp/arp.c +++ b/usr.sbin/arp/arp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: arp.c,v 1.60 2014/08/22 22:14:53 sthen Exp $ */ +/* $OpenBSD: arp.c,v 1.61 2014/09/03 10:39:41 mpi Exp $ */ /* $NetBSD: arp.c,v 1.12 1995/04/24 13:25:18 cgd Exp $ */ /* @@ -493,6 +493,8 @@ search(in_addr_t addr, void (*action)(struct sockaddr_dl *sdl, rtm = (struct rt_msghdr *)next; if (rtm->rtm_version != RTM_VERSION) continue; + if (rtm->rtm_flags & RTF_BROADCAST) + continue; sin = (struct sockaddr_inarp *)(next + rtm->rtm_hdrlen); sdl = (struct sockaddr_dl *)(sin + 1); if (addr) { @@ -557,7 +559,7 @@ print_entry(struct sockaddr_dl *sdl, struct sockaddr_inarp *sin, printf("%-*.*s %-*.*s %*.*s", addrwidth, addrwidth, host, llwidth, llwidth, ether_str(sdl), ifwidth, ifwidth, ifname); - if (rtm->rtm_flags & RTF_PERMANENT_ARP) + if (rtm->rtm_flags & (RTF_PERMANENT_ARP|RTF_LOCAL|RTF_BROADCAST)) printf(" %-10.10s", "permanent"); else if (rtm->rtm_rmx.rmx_expire == 0) printf(" %-10.10s", "static"); @@ -567,7 +569,8 @@ print_entry(struct sockaddr_dl *sdl, struct sockaddr_inarp *sin, else printf(" %-10.10s", "expired"); - snprintf(flgbuf, sizeof(flgbuf), "%s%s", + snprintf(flgbuf, sizeof(flgbuf), "%s%s%s", + (rtm->rtm_flags & RTF_LOCAL) ? "l" : "", (sin->sin_other & SIN_PROXY) ? "P" : "", (rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : ""); diff --git a/usr.sbin/ndp/ndp.8 b/usr.sbin/ndp/ndp.8 index 396e81105c9..eeed3fd8906 100644 --- a/usr.sbin/ndp/ndp.8 +++ b/usr.sbin/ndp/ndp.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ndp.8,v 1.32 2014/07/12 17:03:47 henning Exp $ +.\" $OpenBSD: ndp.8,v 1.33 2014/09/03 10:39:41 mpi Exp $ .\" $KAME: ndp.8,v 1.28 2002/07/17 08:46:33 itojun Exp $ .\" .\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd $Mdocdate: July 12 2014 $ +.Dd $Mdocdate: September 3 2014 $ .Dt NDP 8 .Os .\" @@ -105,7 +105,9 @@ Unknown state (should never happen). .El .It Flags Flags on the neighbor cache entry, in a single letter. -They are: Router +They are: local +.Pq Sq l , +Router .Pq Sq R and proxy neighbor advertisement .Pq Sq p . diff --git a/usr.sbin/ndp/ndp.c b/usr.sbin/ndp/ndp.c index 98e22d56dc7..9655df21a51 100644 --- a/usr.sbin/ndp/ndp.c +++ b/usr.sbin/ndp/ndp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ndp.c,v 1.56 2014/08/22 22:37:32 sthen Exp $ */ +/* $OpenBSD: ndp.c,v 1.57 2014/09/03 10:39:41 mpi Exp $ */ /* $KAME: ndp.c,v 1.101 2002/07/17 08:46:33 itojun Exp $ */ /* @@ -714,23 +714,17 @@ again:; * other flags. R: router, P: proxy, W: ?? */ if ((rtm->rtm_addrs & RTA_NETMASK) == 0) { - snprintf(flgbuf, sizeof(flgbuf), "%s%s", + snprintf(flgbuf, sizeof(flgbuf), "%s%s%s", + (rtm->rtm_flags & RTF_LOCAL) ? "l" : "", isrouter ? "R" : "", (rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : ""); } else { sin = (struct sockaddr_in6 *) (sdl->sdl_len + (char *)sdl); -#if 0 /* W and P are mystery even for us */ - snprintf(flgbuf, sizeof(flgbuf), "%s%s%s%s", + snprintf(flgbuf, sizeof(flgbuf), "%s%s%s", + (rtm->rtm_flags & RTF_LOCAL) ? "l" : "", isrouter ? "R" : "", - !IN6_IS_ADDR_UNSPECIFIED(&sin->sin6_addr) ? "P" : "", - (sin->sin6_len != sizeof(struct sockaddr_in6)) ? "W" : "", (rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : ""); -#else - snprintf(flgbuf, sizeof(flgbuf), "%s%s", - isrouter ? "R" : "", - (rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : ""); -#endif } printf(" %s", flgbuf); |