Martin Pieuchot([email protected]) on 2016.04.12 16:25:36 +0200:
> On 12/04/16(Tue) 14:03, Stuart Henderson wrote:
> > On 2016/04/12 14:18, Claudio Jeker wrote:
> > > On Tue, Apr 12, 2016 at 01:47:53PM +0200, Stefan Sperling wrote:
> > > > On Tue, Apr 12, 2016 at 12:27:10PM +0100, Stuart Henderson wrote:
> > > > > On 2016/04/12 13:00, Martin Pieuchot wrote:
> > > > > > Relying on the "scopeid" field is not a viable long-term solution.  
> > > > > > I'm
> > > > > > spending too much time these days trying to figure out which 
> > > > > > interface
> > > > > > correspond to which index.
> > > > > > 
> > > > > > Here's a difference in output, then the diff itself.  ok?
> > > > > > 
> > > > > > @@ -1,31 +1,29 @@
> > > > > >  lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
> > > > > > +   index 4
> > > > > >     priority: 0
> > > > > >     groups: lo
> > > > > >     inet6 ::1 prefixlen 128
> > > > > >     inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
> > > > > >     inet 127.0.0.1 netmask 0xff000000
> > > > > >  em0: 
> > > > > > flags=18b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST,MPSAFE>
> > > > > >  mtu 1500
> > > > > > -   lladdr f0:de:f9:1d:88:53
> > > > > > +   index 1 lladdr f0:de:f9:1d:88:53
> > > > > 
> > > > > This will break scripts, e.g. "awk '/lladdr/ {print $2}'"
> > > > > 
> > > > > I would expect putting it after lladdr would be better for the sort
> > > > > of scripts a user is likely to write, but bsd.rd would need a change
> > > > > if that was done, it uses sed 's/.*lladdr \(.*\)/\1/p;d'
> > > > > 
> > > > > On a new line would be safer.
> > > > 
> > > > How about appending to the flags line, like this?
> > > > 
> > > > lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 index 4
> > > > 
> > > 
> > > Or on the line with priority? The risk of breaking scripts that way is
> > > probably smaller.
> > 
> > I'd be happier with priority, the flags line can get quite long these days!
> 
> Like that?

yes, ok
(not an extra line -> ifconfig output is long enough)

> 
> em0: 
> flags=18b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST,MPSAFE> 
> mtu 1500
>         lladdr f1:ce:f9:1d:77:49
>         index 1 priority 0
>         trunk: trunkdev trunk0
>         media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause)
>         status: active
> 
> Index: ifconfig.c
> ===================================================================
> RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v
> retrieving revision 1.319
> diff -u -p -r1.319 ifconfig.c
> --- ifconfig.c        6 Apr 2016 11:48:51 -0000       1.319
> +++ ifconfig.c        12 Apr 2016 14:25:03 -0000
> @@ -2929,8 +2929,14 @@ status(int link, struct sockaddr_dl *sdl
>           strlen(ifrdesc.ifr_data))
>               printf("\tdescription: %s\n", ifrdesc.ifr_data);
>  
> -     if (!is_bridge(name) && ioctl(s, SIOCGIFPRIORITY, &ifrdesc) == 0)
> -             printf("\tpriority: %d\n", ifrdesc.ifr_metric);
> +     if (sdl != NULL)
> +             printf("\tindex %u", sdl->sdl_index);
> +     if (!is_bridge(name) && ioctl(s, SIOCGIFPRIORITY, &ifrdesc) == 0) {
> +             printf("%cpriority %d\n", (sdl != NULL) ? ' ' : '\t',
> +                 ifrdesc.ifr_metric);
> +     } else if (sdl != NULL) {
> +             putchar('\n');
> +     }
>       (void) memset(&ikardesc, 0, sizeof(ikardesc));
>       (void) strlcpy(ikardesc.ikar_name, name, sizeof(ikardesc.ikar_name));
>       if (ioctl(s, SIOCGETKALIVE, &ikardesc) == 0 &&
> 

-- 

Reply via email to