From owner-freebsd-current@FreeBSD.ORG Thu Sep 29 23:03:54 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2A7FD16A41F for ; Thu, 29 Sep 2005 23:03:54 +0000 (GMT) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (comp.chem.msu.su [158.250.32.97]) by mx1.FreeBSD.org (Postfix) with ESMTP id D4B1043D55 for ; Thu, 29 Sep 2005 23:03:52 +0000 (GMT) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (localhost [127.0.0.1]) by comp.chem.msu.su (8.13.3/8.13.3) with ESMTP id j8TN3mrb012516; Fri, 30 Sep 2005 03:03:49 +0400 (MSD) (envelope-from yar@comp.chem.msu.su) Received: (from yar@localhost) by comp.chem.msu.su (8.13.3/8.13.3/Submit) id j8TN3jZj012515; Fri, 30 Sep 2005 03:03:45 +0400 (MSD) (envelope-from yar) Date: Fri, 30 Sep 2005 03:03:45 +0400 From: Yar Tikhiy To: Fredrik Lindberg Message-ID: <20050929230345.GC3035@comp.chem.msu.su> References: <20050922104104.GA13539@comp.chem.msu.su> <20050925213741.GG15981@odin.ac.hmc.edu> <20050928110413.GE86457@comp.chem.msu.su> <433C14EE.6010105@shapeshifter.se> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <433C14EE.6010105@shapeshifter.se> User-Agent: Mutt/1.5.9i Cc: freebsd-current@freebsd.org Subject: Re: "ifconfig -vlandev" syntax X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Sep 2005 23:03:54 -0000 On Thu, Sep 29, 2005 at 06:23:10PM +0200, Fredrik Lindberg wrote: > Yar Tikhiy wrote: > >On Sun, Sep 25, 2005 at 02:37:41PM -0700, Brooks Davis wrote: > > > >>On Thu, Sep 22, 2005 at 02:41:05PM +0400, Yar Tikhiy wrote: > >> > >>>As our ifconfig(8) is growing more options for special interface > >>>types, inconsistencies sneak into their syntax. In particular, > >>>-vlandev takes a useless argument (vlan(4) cannot attach to more > >>>than one parent anyway) while, e.g., -carpdev doesn't need one. > >>>Personally, I like the latter since having to type unneeded words > >>>on the command line annoys me. Do you think that making -vlandev > >>>need no arguments in CURRENT would break many existing things? > >> > >>I agree the argument is useless. Unfortunatly, it's going to be hard to > >>deprecate the old syntax so we may need to keep it around. > > > > > >Alas, there doesn't seem to exist an easy way to support both > >syntaxes in the ifconfig(8) parameter parser. Perhaps we can > >survive the pain of syntax change in CURRENT only, with a > >heads-up message sent, release notes updated, etc? I wonder > >if many people use "ifconfig -vlandev XXX" in automated tools. > > > > Why not use something simple such as the following (maybe even > without that printf(). > > root@genesis> ./ifconfig vlan0 create > root@genesis> ./ifconfig vlan0 vlan 1 vlandev em0 > root@genesis> ./ifconfig vlan0 -vlandev > root@genesis> ./ifconfig vlan0 vlan 1 vlandev em0 > root@genesis> ./ifconfig vlan0 -vlandev em0 > Passing interface to -vlandev is deprecated. > > > Index: ifvlan.c > =================================================================== > RCS file: /home/ncvs/src/sbin/ifconfig/ifvlan.c,v > retrieving revision 1.7 > diff -u -r1.7 ifvlan.c > --- ifvlan.c 31 Dec 2004 19:46:27 -0000 1.7 > +++ ifvlan.c 29 Sep 2005 16:19:32 -0000 > @@ -130,6 +130,9 @@ > { > struct vlanreq vreq; > > + if (val != NULL) > + fprintf(stderr, "Passing interface to -vlandev is > deprecated.\n"); > + > bzero((char *)&vreq, sizeof(struct vlanreq)); > ifr.ifr_data = (caddr_t)&vreq; > > @@ -148,7 +151,7 @@ > static struct cmd vlan_cmds[] = { > DEF_CMD_ARG("vlan", setvlantag), > DEF_CMD_ARG("vlandev", setvlandev), > - DEF_CMD_ARG("-vlandev", unsetvlandev), > + DEF_CMD_OPTARG("-vlandev", > unsetvlandev), > DEF_CMD("vlanmtu", IFCAP_VLAN_MTU, setifcap), > DEF_CMD("-vlanmtu", -IFCAP_VLAN_MTU, setifcap), > DEF_CMD("vlanhwtag", IFCAP_VLAN_HWTAGGING, setifcap), Thank you very much for this suggestion! I missed DEF_CMD_OPTARG() completely, perhaps because it didn't seem to be used in ifconfig *.c files yet. -- Yar