Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Aug 2018 10:56:14 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        rgrimes@freebsd.org, "Andrey V. Elsukov" <bu7cher@yandex.ru>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r337536 - head/sbin/ipfw
Message-ID:  <1533833774.9860.116.camel@freebsd.org>
In-Reply-To: <201808091649.w79GniZf018408@pdx.rh.CN85.dnsmgr.net>
References:  <201808091649.w79GniZf018408@pdx.rh.CN85.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2018-08-09 at 09:49 -0700, Rodney W. Grimes wrote:
> -- Start of PGP signed section.
> [ Charset UTF-8 unsupported, converting... ]
> > 
> > On 09.08.2018 19:19, Rodney W. Grimes wrote:
> > > 
> > > > 
> > > > > 
> > > > > > 
> > > > > > table add/delete commands had the same behavior, "nat"
> > > > > > already noted in
> > > > > > this list. What is the usage scenario do you use, where you
> > > > > > need to fail
> > > > > > on bad delete?
> > > > > if [ ipfw delete ${1} ]; then
> > > > > 	handle the missing rule
> > > > > fi
> > > > This is mostly unneeded operation, that we wanted to avoid.
> > > > I.e. to be able run in bath mode:
> > > > 
> > > > delete ${n}
> > > > add ${n} ...
> > > That is one use case, but any shell script worth writting
> > > is worth writting to handle error conditions, and not being
> > > able to handle errors while being silent is a PITA.
> > Ok, I still don't understand the usefulness of knowing the error
> > code of delete command. But, I can propose the following solution:
> > Index: ipfw2.c
> > ===================================================================
> > --- ipfw2.c	(revision 337541)
> > +++ ipfw2.c	(working copy)
> > @@ -3314,7 +3314,7 @@ ipfw_delete(char *av[])
> >  			}
> >  		}
> >  	}
> > -	if (exitval != EX_OK && co.do_quiet == 0)
> > +	if (exitval != EX_OK && co.do_force == 0)
> >  		exit(exitval);
> >  }
> > 
> > 
> > With this patch -q will work as "quiet", -f will work as "force".
> > So, you can still get error code in shell script, and I can run
> > batched
> > commands with -q -f:
> > 
> > # ipfw -f delete 10000-11000 ; echo $?
> > ipfw: no rules rules in 10000-11000 range
> > 0
> > # ipfw -qf delete 10000-11000 ; echo $?
> > 0
> > # ipfw -q delete 10000-11000 ; echo $?
> > 69
> > 
> > Are you fine with this?
> In spirit yes, in implementation No:
> 
> The -f option is documented, and actually does, something different
> than what your change would implement.
> 
>      -f      Do not ask for confirmation for commands that can cause
> problems
>              if misused, i.e., flush.  If there is no tty associated
> with the
>              process, this is implied.
> 
> 
> 
> 

What he proposes is pretty much the exact behavior of rm -f, and should
be intuitively obvious to anyone familiar with common unix commands.

-- Ian



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