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 &&
>
--