On Tue, Nov 30, 2010 at 03:57:00PM +0000, Gleb Smirnoff wrote:
> Author: glebius
> Date: Tue Nov 30 15:57:00 2010
> New Revision: 216075
> URL: http://svn.freebsd.org/changeset/base/216075

> Log:
>   Use time_uptime instead of non-monotonic time_second to drive ARP
>   timeouts.

>   Suggested by:       bde

> Modified:
>   head/sys/netinet/if_ether.c
>   head/sys/netinet/in.c
>   head/usr.sbin/arp/arp.c

> Modified: head/usr.sbin/arp/arp.c
> ==============================================================================
> --- head/usr.sbin/arp/arp.c   Tue Nov 30 09:34:47 2010        (r216074)
> +++ head/usr.sbin/arp/arp.c   Tue Nov 30 15:57:00 2010        (r216075)
> @@ -602,10 +602,10 @@ print_entry(struct sockaddr_dl *sdl,
>       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)
> +             static struct timespec tp;
> +             if (tp.tv_sec == 0)
> +                     clock_gettime(CLOCK_MONOTONIC, &tp);
> +             if ((expire_time = rtm->rtm_rmx.rmx_expire - tp.tv_sec) > 0)
>                       printf(" expires in %d seconds", (int)expire_time);
>               else
>                       printf(" expired");

Hmm, doesn't this break the API between arp(8) and the kernel?
Assuming we care, perhaps arp(8) should send/receive realtime, converted
at the time it requests the data. The kernel can then continue to use
monotonic time internally (which I agree is better).

-- 
Jilles Tjoelker
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to