Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Jun 2019 09:08:24 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r349364 - head/sbin/ipfw
Message-ID:  <201906250908.x5P98O3p052107@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ae
Date: Tue Jun 25 09:08:24 2019
New Revision: 349364
URL: https://svnweb.freebsd.org/changeset/base/349364

Log:
  Restore ipfw(8)'s compact output support broken after r331668.
  
  Also modify it a bit. Now -c option omits only 'from any to any' part
  and works for different protocols (not just for ip).
  
  Reported by:	Dmitry Selivanov <dseliv at gmail>
  MFC after:	1 week

Modified:
  head/sbin/ipfw/ipfw2.c

Modified: head/sbin/ipfw/ipfw2.c
==============================================================================
--- head/sbin/ipfw/ipfw2.c	Tue Jun 25 07:44:37 2019	(r349363)
+++ head/sbin/ipfw/ipfw2.c	Tue Jun 25 09:08:24 2019	(r349364)
@@ -2223,6 +2223,8 @@ show_static_rule(struct cmdline_opts *co, struct forma
 	}
 
 	print_proto(bp, fo, &state);
+	if (co->do_compact != 0 && (rule->flags & IPFW_RULE_NOOPT))
+		goto justopts;
 
 	/* Print source */
 	bprintf(bp, " from");
@@ -4395,6 +4397,8 @@ chkarg:
 	}
     OR_BLOCK(get_proto);
 
+	first_cmd = cmd; /* update pointer to use in compact form */
+
 	/*
 	 * "from", mandatory
 	 */
@@ -4466,6 +4470,8 @@ chkarg:
 				cmd = next_cmd(cmd, &cblen);
 		}
 	}
+	if (first_cmd == cmd)
+		rule->flags |= IPFW_RULE_NOOPT;
 
 read_options:
 	prev = NULL;



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