[PATCH nft 1/2] datatype: default to display bitmask in hexadecimal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Instead of a plain integer.

This updates integer_type_print() to look up some basefmt in the change of
datatype, the first we find will be used to format the output.

Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
---
 src/datatype.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/datatype.c b/src/datatype.c
index f93337b..82a7753 100644
--- a/src/datatype.c
+++ b/src/datatype.c
@@ -260,15 +260,22 @@ const struct datatype bitmask_type = {
 	.type		= TYPE_BITMASK,
 	.name		= "bitmask",
 	.desc		= "bitmask",
+	.basefmt	= "0x%Zx",
 	.basetype	= &integer_type,
 };
 
 static void integer_type_print(const struct expr *expr)
 {
+	const struct datatype *dtype = expr->dtype;
 	const char *fmt = "%Zu";
 
-	if (expr->dtype->basefmt != NULL)
-		fmt = expr->dtype->basefmt;
+	do {
+		if (dtype->basefmt != NULL) {
+			fmt = dtype->basefmt;
+			break;
+		}
+	} while ((dtype = dtype->basetype));
+
 	gmp_printf(fmt, expr->value);
 }
 
-- 
1.7.10.4

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




[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux