diff options
authorPhil Sutter <>2018-08-28 22:26:56 +0200
committerPablo Neira Ayuso <>2018-08-29 02:16:44 +0200
commit0c0f90bcca71b35f3d50bad0c612ca1ce46d1351 (patch)
parent9e45a28ca467f08b9c01baf73d1849055e53ea0b (diff)
json: Fix compile error
Commit 9e45a28ca467f ("src: honor /etc/services") broke compiling with JSON support enabled: inet_service_type_print() is not suited for converting inet_service datatype into JSON at all. In order to avoid having to replicate the port value resolving into human-readable name in inet_service_type_json(), just return a numeric value. At least for JSON output, this probably makes most sense either way since the output is expected to be parsed by scripts which have an easier time with numers than names anyway. Fixes: 9e45a28ca467f ("src: honor /etc/services") Signed-off-by: Phil Sutter <> Signed-off-by: Pablo Neira Ayuso <>
1 files changed, 1 insertions, 4 deletions
diff --git a/src/json.c b/src/json.c
index b70a53f2..00d24764 100644
--- a/src/json.c
+++ b/src/json.c
@@ -861,10 +861,7 @@ json_t *inet_protocol_type_json(const struct expr *expr,
json_t *inet_service_type_json(const struct expr *expr, struct output_ctx *octx)
- if (octx->numeric >= NFT_NUMERIC_PORT)
- return integer_type_json(expr, octx);
- return inet_service_type_print(expr, octx);
+ return json_integer(ntohs(mpz_get_be16(expr->value)));
json_t *mark_type_json(const struct expr *expr, struct output_ctx *octx)