From owner-svn-src-all@freebsd.org Thu Aug 9 14:28:51 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95A241067F8D; Thu, 9 Aug 2018 14:28:51 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2F3975397; Thu, 9 Aug 2018 14:28:50 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w79ESmYv017685; Thu, 9 Aug 2018 07:28:48 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w79ESmln017684; Thu, 9 Aug 2018 07:28:48 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201808091428.w79ESmln017684@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r337536 - head/sbin/ipfw In-Reply-To: <201808091246.w79CkU84012087@repo.freebsd.org> To: "Andrey V. Elsukov" Date: Thu, 9 Aug 2018 07:28:48 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Aug 2018 14:28:51 -0000 > Author: ae > Date: Thu Aug 9 12:46:30 2018 > New Revision: 337536 > URL: https://svnweb.freebsd.org/changeset/base/337536 > > Log: > If -q flag is specified, do not complain when we are trying to delete > nonexistent NAT instance or nonexistent rule. It would probably be better to not overload -q with what is usually a -f like functionality of a command. Sadly -f is already used in ipfw, so another option should be choosen. > This allows execute batched `delete` commands and do not fail when > found nonexistent rule. So now I can not code a quiet ipfw command that does fail when I give it a bad delete command :-(. > Obtained from: Yandex LLC > MFC after: 2 weeks > Sponsored by: Yandex LLC > > Modified: > head/sbin/ipfw/ipfw2.c > > Modified: head/sbin/ipfw/ipfw2.c > ============================================================================== > --- head/sbin/ipfw/ipfw2.c Thu Aug 9 12:17:03 2018 (r337535) > +++ head/sbin/ipfw/ipfw2.c Thu Aug 9 12:46:30 2018 (r337536) > @@ -3271,9 +3271,11 @@ ipfw_delete(char *av[]) > exitval = do_cmd(IP_FW_NAT_DEL, &i, sizeof i); > if (exitval) { > exitval = EX_UNAVAILABLE; > - warn("rule %u not available", i); > + if (co.do_quiet) > + continue; > + warn("nat %u not available", i); > } > - } else if (co.do_pipe) { > + } else if (co.do_pipe) { > exitval = ipfw_delete_pipe(co.do_pipe, i); > } else { > memset(&rt, 0, sizeof(rt)); > @@ -3295,10 +3297,14 @@ ipfw_delete(char *av[]) > i = do_range_cmd(IP_FW_XDEL, &rt); > if (i != 0) { > exitval = EX_UNAVAILABLE; > + if (co.do_quiet) > + continue; > warn("rule %u: setsockopt(IP_FW_XDEL)", > rt.start_rule); > } else if (rt.new_set == 0 && do_set == 0) { > exitval = EX_UNAVAILABLE; > + if (co.do_quiet) > + continue; > if (rt.start_rule != rt.end_rule) > warnx("no rules rules in %u-%u range", > rt.start_rule, rt.end_rule); > @@ -3308,7 +3314,7 @@ ipfw_delete(char *av[]) > } > } > } > - if (exitval != EX_OK) > + if (exitval != EX_OK && co.do_quiet == 0) > exit(exitval); > } > > > -- Rod Grimes rgrimes@freebsd.org