Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Feb 2014 22:10:11 -0800
From:      <dteske@FreeBSD.org>
To:        "'Hiroki Sato'" <hrs@FreeBSD.org>, <jhellenthal@dataix.net>
Cc:        rc@FreeBSD.org, dteske@FreeBSD.org
Subject:   RE: network.subr _aliasN handling
Message-ID:  <122101cf2f94$bfd81b30$3f885190$@FreeBSD.org>
In-Reply-To: <20140222.141935.520275210006153242.hrs@allbsd.org>
References:  <AFFFCC9A-8C21-4C0B-A8D9-457E4C26DDA3@fisglobal.com>	<7EAEF3AC-DB1B-4D3E-A156-E1E76B765990@jnielsen.net>	<11c101cf2f6b$e3aee5d0$ab0cb170$@FreeBSD.org> <20140222.141935.520275210006153242.hrs@allbsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help


> -----Original Message-----
> From: Hiroki Sato [mailto:hrs@FreeBSD.org]
> Sent: Friday, February 21, 2014 9:20 PM
> To: jhellenthal@dataix.net; dteske@FreeBSD.org
> Cc: lists@jnielsen.net; rc@FreeBSD.org
> Subject: Re: network.subr _aliasN handling
> 
> <dteske@freebsd.org> wrote
>   in <11c101cf2f6b$e3aee5d0$ab0cb170$@FreeBSD.org>:
> 
> dt>
> dt>
> dt> > -----Original Message-----
> dt> > From: John Nielsen [mailto:lists@jnielsen.net]
> dt> > Sent: Friday, February 21, 2014 9:06 AM
> dt> > To: Devin Teske
> dt> > Cc: Jason Hellenthal; rc@freebsd.org; net@freebsd.org
> dt> > Subject: Re: network.subr _aliasN handling
> dt> >
> dt> > On Jan 4, 2014, at 4:25 AM, Teske, Devin
> dt> > <Devin.Teske@fisglobal.com>
> dt> wrote:
> dt> >
> dt> > > On Jan 4, 2014, at 2:59 AM, Jason Hellenthal wrote:
> dt> > >
> dt> > >> I believe I know what you mean by that but in a way scares me
> dt> > >> when
> dt> you say
> dt> > sort as in mixing up the original order they appear in which I
> dt> > would
> dt> find to be
> dt> > really unattractive to most.
> dt> > >
> dt> > > It's not as scary as it sounds.
> dt> > >
> dt> > > The issue is that the variables are sorted alphabetically,
> dt> > > instead of numerically.
> dt> > >
> dt> > > Let's take four words: foo1, foo2, foo10, and foo20.
> dt> > > If you sort them alphabetically, you get:
> dt> > >
> dt> > > 	foo1
> dt> > > 	foo10
> dt> > > 	foo2
> dt> > > 	foo20
> dt> > >
> dt> > > You'll notice this when doing a directory listing, as that too
> dt> > > is sorted alphabetically.
> dt> > >
> dt> > > This is why "alias14" is run before "alias8" and "alias9".
> dt> > > Because they are processed in alphabetically sorted order. I
> dt> > > didn't do anything to sort the values, they came pre-sorted in
alphabetic
> order.
> dt> > >
> dt> > > If I simply throw in a "| sort -n", then it will change it to
> dt> numerically sorted.
> dt> > > As you might expect, numerically sorting the above list would
> dt> > > result
> dt> in:
> dt> > >
> dt> > > 	foo1
> dt> > > 	foo2
> dt> > > 	foo10
> dt> > > 	foo20
> dt> > >
> dt> > > Trivial really. I'll throw a patch at you when I get some cycles
> dt> (soon).
> dt> >
> dt> > Hi Devin, Jason-
> dt> >
> dt> > I've been behind on my mailing list e-mail for a while, but I
> dt> > really
> dt> like the idea
> dt> > and the patch proposed here. I don't see anything like it in head
> dt> > yet,
> dt> so ... Ping?
> dt> > :)
> dt> >
> dt> > JN
> dt> >
> dt> [Devin Teske]
> dt>
> dt> *** this time with attached patch.txt ***
> dt>
> dt> Hi JN, here's a new patch that incorporates numerical sorting as
> dt> well as what the original patch set out to do ... make "gaps"
> dt> possible (so that you could comment out an alias without having to
> dt> renumber all the ones following).
> dt>
> dt> Give it a look, let me know what you think.
> 
> +list_vars()
> +{
> +	set | { while read LINE; do
> +		var="${LINE%%=*}"
> +		case "$var" in
> +		"$LINE"|*[!a-zA-Z0-9_]*) continue ;;
> +		$1) echo $var
> +		esac
> +	done; }
> +}
> 
>  This can be inconsistent with normalization of $_if in get_if_var()  when
[.-/+]
> is included.
> 
[Devin Teske] 

I'm not sure what you mean by "when [.-/+] is included". The line of code
that
reads as follows:

	"$LINE"|*[!a-zA-Z0-9_]*) continue ;;

causes any line that is returned by "set" to be ignored if:

	a. it does not contain an "="
	NB: by way of comparing $var to $LINE; $var asks to remove =*

	b. it contains any character that is not a valid shell variable
	NB: In other words, contains one or more characters that do not
	match a-z or A-Z or 0-9 or underscore (_)

Are you saying that there was a plan to change get_if_var in some way
that would make this not work? Because such a change would also violate
variable naming rules in sh(1).

>  I have no strong opinion about fixing the sequence gap issue but
> ifconfig_IF_aliases was meant for that.  This behavior is well-known  for
a very
> long time, so I was reluctant to change it.
> 
[Devin Teske] 

I identified heavily with the issue of having to rename entries after
commenting out an entry, only to later have to re-shuffle after un-
commenting the same entry moments later.

So seemed like a good time to fix that injustice. Yeah, I think we've
all just been living with that one for a long time.
-- 
Devin

_____________
The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?122101cf2f94$bfd81b30$3f885190$>