Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Feb 2007 12:41:02 -0600
From:      Brooks Davis <brooks@FreeBSD.ORG>
To:        freebsd-stable@FreeBSD.ORG
Subject:   Re: Desired behaviour of "ifconfig -alias"
Message-ID:  <20070212184102.GD52751@lor.one-eyed-alien.net>
In-Reply-To: <200702121823.l1CINXHt066223@lurza.secnetix.de>
References:  <20070212175940.GA52751@lor.one-eyed-alien.net> <200702121823.l1CINXHt066223@lurza.secnetix.de>

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

--ZJcv+A0YCCLh2VIg
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Feb 12, 2007 at 07:23:33PM +0100, Oliver Fromme wrote:
> Brooks Davis wrote:
>  > Oliver Fromme wrote:
>  > > Brooks Davis wrote:
>  > > > ipv4_addrs_<interface> is a much better replacement IMO.  It's eas=
y to
>  > > > use and doesn't required the hackish pseudo array traversal used by
>  > > > ifconfig_iface_aliasX.
>  > >=20
>  > > That might work for simple cases, but how do you specify
>  > > other parameters beside the IPs if you need to?
>  >=20
>  > What do you need to set?  It's sets IP and netmask.  It doesn't handle
>  > broadcast, but I'd be pretty suprised if that's needed often.
>=20
> True, not often, but sometimes.  I had cases like that in
> certain environments with bridged networks and arp proxies.
>=20
> I'm fine with your proposed syntax, as long as all the
> existing ifconfig possibilities continue to be possible,
> i.e. no regression.

FWIW, it's HEAD and 6.1.  We've actually got the aliases syntax labled
as deprecated in the manpage.  We might want to add a feature to set the
broadcast address.

>  > is needed?  Axing ifconfig_iface_aliasX is not needed, but reducing the
>  > visiability of the interface in the documentation is probably in order
>  > particularly since it's quite fragile since you have to renumber whene=
ver
>  > you remove an entry.
>=20
> Yup, I agree, that's a PITA.  That could be solved in the
> shell code, though, by not enumerating until a number
> doesn't exist, but instead looking at the set of all
> shell variables that have been set, similar to this:
>=20
> set | grep "^ifconfig_${IFACE}_alias" | cut -f1 -d=3D | ...

Unfortuanly grep in in /usr/bin so can't be used.  You could do it
with sh variable mangling and case though.  Something like:

{ while read _var; do
	_var=3D${_var%%=3D*}
	case $_var in
	ifconfig_${IFACE}_alias*)
		<...>
		;;
	esac
done } < `set`

-- Brooks

--ZJcv+A0YCCLh2VIg
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)

iD8DBQFF0LS9XY6L6fI4GtQRAmTMAJ4i6Kn/2sSX5UaFvL/l8mElJqiuJgCgo7hT
6pL0dAqXf9N+WoIupWMkyG0=
=x8h1
-----END PGP SIGNATURE-----

--ZJcv+A0YCCLh2VIg--



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