svn commit: r349646 - stable/11/sbin/ipfw

Andrey V. Elsukov ae at FreeBSD.org
Wed Jul 3 09:48:23 UTC 2019


Author: ae
Date: Wed Jul  3 09:48:22 2019
New Revision: 349646
URL: https://svnweb.freebsd.org/changeset/base/349646

Log:
  MFC r349364:
    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>

Modified:
  stable/11/sbin/ipfw/ipfw2.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sbin/ipfw/ipfw2.c
==============================================================================
--- stable/11/sbin/ipfw/ipfw2.c	Wed Jul  3 09:48:20 2019	(r349645)
+++ stable/11/sbin/ipfw/ipfw2.c	Wed Jul  3 09:48:22 2019	(r349646)
@@ -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;


More information about the svn-src-all mailing list