Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Feb 2010 14:29:17 +0000 (UTC)
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r203919 - head/usr.sbin/arp
Message-ID:  <201002151429.o1FETHov026200@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ru
Date: Mon Feb 15 14:29:17 2010
New Revision: 203919
URL: http://svn.freebsd.org/changeset/base/203919

Log:
  Show when an ARP entry expires.
  
  MFC after:	1 week

Modified:
  head/usr.sbin/arp/arp.c

Modified: head/usr.sbin/arp/arp.c
==============================================================================
--- head/usr.sbin/arp/arp.c	Mon Feb 15 14:14:13 2010	(r203918)
+++ head/usr.sbin/arp/arp.c	Mon Feb 15 14:29:17 2010	(r203919)
@@ -101,7 +101,8 @@ static int valid_type(int type);
 static int nflag;	/* no reverse dns lookups */
 static char *rifname;
 
-static int	expire_time, flags, doing_proxy, proxy_only;
+static time_t	expire_time;
+static int	flags, doing_proxy, proxy_only;
 
 /* which function we're supposed to do */
 #define F_GET		1
@@ -594,6 +595,15 @@ print_entry(struct sockaddr_dl *sdl,
 		printf(" on %s", ifname);
 	if (rtm->rtm_rmx.rmx_expire == 0)
 		printf(" permanent");
+	else {
+		static struct timeval tv;
+		if (tv.tv_sec == 0)
+			gettimeofday(&tv, 0);
+		if ((expire_time = rtm->rtm_rmx.rmx_expire - tv.tv_sec) > 0)
+			printf(" expires in %d seconds", (int)expire_time);
+		else
+			printf(" expired");
+	}
 	if (addr->sin_other & SIN_PROXY)
 		printf(" published (proxy only)");
 	if (rtm->rtm_flags & RTF_ANNOUNCE)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002151429.o1FETHov026200>