Patchwork nftables: add additional --numeric level

login
register
mail settings
Submitter Phil Oester
Date Aug. 15, 2013, 11:24 p.m.
Message ID <20130815232411.GA22555@linuxace.com>
Download mbox | patch
Permalink /patch/267506/
State Accepted
Headers show

Comments

Phil Oester - Aug. 15, 2013, 11:24 p.m.
Personally, I like seeing ports and IPs numerically, but prefer protocols
to be shown by name.  As such, add a third --numeric level which will
show protocols by number, splitting them out from ports.

  -n/--numeric                  When specified once, show network addresses numerically.
                                When specified twice, also show Internet services,
                                user IDs and group IDs numerically.
                                When specified thrice, also show protocols numerically.

Phil

Signed-off-by: Phil Oester <kernel@linuxace.com>
Pablo Neira - Aug. 22, 2013, 11:48 a.m.
On Thu, Aug 15, 2013 at 04:24:11PM -0700, Phil Oester wrote:
> Personally, I like seeing ports and IPs numerically, but prefer protocols
> to be shown by name.  As such, add a third --numeric level which will
> show protocols by number, splitting them out from ports.
> 
>   -n/--numeric                  When specified once, show network addresses numerically.
>                                 When specified twice, also show Internet services,
>                                 user IDs and group IDs numerically.
>                                 When specified thrice, also show protocols numerically.

Applied, thanks Phil.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/include/nftables.h b/include/nftables.h
index ec21d37..12f3c49 100644
--- a/include/nftables.h
+++ b/include/nftables.h
@@ -8,6 +8,7 @@ 
 enum numeric_level {
 	NUMERIC_NONE,
 	NUMERIC_ADDR,
+	NUMERIC_PORT,
 	NUMERIC_ALL,
 };
 
diff --git a/src/datatype.c b/src/datatype.c
index 55368ee..243760d 100644
--- a/src/datatype.c
+++ b/src/datatype.c
@@ -487,7 +487,7 @@  static void inet_service_type_print(const struct expr *expr)
 	sin.sin_port = mpz_get_be16(expr->value);
 	err = getnameinfo((struct sockaddr *)&sin, sizeof(sin), NULL, 0,
 			  buf, sizeof(buf),
-			  numeric_output < NUMERIC_ALL ? 0 : NI_NUMERICSERV);
+			  numeric_output < NUMERIC_PORT ? 0 : NI_NUMERICSERV);
 	if (err != 0) {
 		getnameinfo((struct sockaddr *)&sin, sizeof(sin), NULL,
 			    0, buf, sizeof(buf), NI_NUMERICSERV);
diff --git a/src/main.c b/src/main.c
index 48d4e03..1a40b9e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -104,8 +104,9 @@  static void show_help(const char *name)
 "  -i/--interactive		Read input from interactive CLI\n"
 "\n"
 "  -n/--numeric			When specified once, show network addresses numerically.\n"
-"  				When specified twice, also show Internet protocols,\n"
-"				Internet services, user IDs and group IDs numerically.\n"
+"  				When specified twice, also show Internet services,\n"
+"				user IDs and group IDs numerically.\n"
+"				When specified thrice, also show protocols numerically.\n"
 "  -a/--handle			Output rule handle.\n"
 "  -I/--includepath <directory>	Add <directory> to the paths searched for include files.\n"
 #ifdef DEBUG