Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jun 2010 23:35:58 +0200
From:      Max Laier <max@love2party.net>
To:        Max Laier <mlaier@freebsd.org>
Cc:        svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   Re: svn commit: r209271 - stable/7/usr.sbin/arp
Message-ID:  <201006172335.58726.max@love2party.net>
In-Reply-To: <201006172038.o5HKcI1J042794@svn.freebsd.org>
References:  <201006172038.o5HKcI1J042794@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 17 June 2010 22:38:18 Max Laier wrote:
> Author: mlaier
> Date: Thu Jun 17 20:38:18 2010
> New Revision: 209271
> URL: http://svn.freebsd.org/changeset/base/209271
> 
> Log:
>   MFC r209063:
>     Cache the last result from if_indextoname for printing.  This speeds up
>     "arp -an" when using a lot of aliases (on a single interface).
> 
>     A better fix would include a better interface for if_indextoname than
>     getting the whole address list from the kernel just to find the one
>     index->name mapping.
> 
>   > Description of fields to fill in above:                     76 columns
>   > --| PR:            If a GNATS PR is affected by the change.
>   > Submitted by:  If someone else sent in the change.
>   > Reviewed by:   If someone else reviewed your modification.
>   > Approved by:   If you needed approval for this commit.
>   > Obtained from: If the change is from a third party.
>   > MFC after:     N [day[s]|week[s]|month[s]].  Request a reminder email.
>   > Security:      Vulnerability reference (one per line) or description.
>   > Empty fields above will be automatically removed.

Woops ... sorry 'bout that.

>   _M   arp
>   M    arp/arp.c
> 
> Modified:
>   stable/7/usr.sbin/arp/arp.c
> Directory Properties:
>   stable/7/usr.sbin/arp/   (props changed)
> 
> Modified: stable/7/usr.sbin/arp/arp.c
> ===========================================================================
> === --- stable/7/usr.sbin/arp/arp.c	Thu Jun 17 20:10:41 2010	(r209270) 
+++
> stable/7/usr.sbin/arp/arp.c	Thu Jun 17 20:38:18 2010	(r209271) @@ -523,6
> +523,9 @@ search(u_long addr, action_fn *action)
>  /*
>   * Display an arp entry
>   */
> +static char lifname[IF_NAMESIZE];
> +static int64_t lifindex = -1;
> +
>  static void
>  print_entry(struct sockaddr_dl *sdl,
>  	struct sockaddr_inarp *addr, struct rt_msghdr *rtm)
> @@ -530,7 +533,6 @@ print_entry(struct sockaddr_dl *sdl,
>  	const char *host;
>  	struct hostent *hp;
>  	struct iso88025_sockaddr_dl_data *trld;
> -	char ifname[IF_NAMESIZE];
>  	int seg;
> 
>  	if (nflag == 0)
> @@ -559,8 +561,12 @@ print_entry(struct sockaddr_dl *sdl,
>  		}
>  	} else
>  		printf("(incomplete)");
> -	if (if_indextoname(sdl->sdl_index, ifname) != NULL)
> -		printf(" on %s", ifname);
> +	if (sdl->sdl_index != lifindex &&
> +	    if_indextoname(sdl->sdl_index, lifname) != NULL) {
> +        	lifindex = sdl->sdl_index;
> +		printf(" on %s", lifname);
> +        } else if (sdl->sdl_index == lifindex)
> +		printf(" on %s", lifname);
>  	if (rtm->rtm_rmx.rmx_expire == 0)
>  		printf(" permanent");
>  	if (addr->sin_other & SIN_PROXY)
> 
> 
> !DSPAM:4c1a87f6420841209311444!



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