summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAna Rey <anarey@gmail.com>2014-06-24 09:15:35 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2014-06-24 10:43:14 +0200
commit616b0ef39e2bc4d718c3fddafcdcce4bf1f7dd83 (patch)
treef05e0e4a1fa62f37d0873b5aee72677a71396e32
parent479126afb32ac77dc8f63d96d5d23b67a0d3d5bc (diff)
expr: counter: Add nft_rule_expr_counter_snprinf_* functions
Code refactoring in nft_rule_expr_counter_snprinf functions. This patch adds three new functions: * nft_rule_expr_counter_snprinf_default * nft_rule_expr_counter_snprinf_xml * nft_rule_expr_counter_snprinf_json Signed-off-by: Ana Rey <anarey@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/expr/counter.c40
1 files changed, 31 insertions, 9 deletions
diff --git a/src/expr/counter.c b/src/expr/counter.c
index 4bb7f1b..65acee3 100644
--- a/src/expr/counter.c
+++ b/src/expr/counter.c
@@ -169,23 +169,45 @@ nft_rule_expr_counter_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree,
return -1;
#endif
}
+static int nft_rule_expr_counter_snprintf_json(char *buf, size_t len,
+ struct nft_rule_expr *e)
+{
+ struct nft_expr_counter *ctr = nft_expr_data(e);
-static int
-nft_rule_expr_counter_snprintf(char *buf, size_t len, uint32_t type,
- uint32_t flags, struct nft_rule_expr *e)
+ return snprintf(buf, len, "\"pkts\":%"PRIu64",\"bytes\":%"PRIu64"",
+ ctr->pkts, ctr->bytes);
+}
+
+static int nft_rule_expr_counter_snprintf_xml(char *buf, size_t len,
+ struct nft_rule_expr *e)
{
struct nft_expr_counter *ctr = nft_expr_data(e);
+ return snprintf(buf, len, "<pkts>%"PRIu64"</pkts>"
+ "<bytes>%"PRIu64"</bytes>",
+ ctr->pkts, ctr->bytes);
+}
+
+static int nft_rule_expr_counter_snprintf_default(char *buf, size_t len,
+ struct nft_rule_expr *e)
+{
+ struct nft_expr_counter *ctr = nft_expr_data(e);
+
+ return snprintf(buf, len, "pkts %"PRIu64" bytes %"PRIu64" ",
+ ctr->pkts, ctr->bytes);
+}
+
+static int nft_rule_expr_counter_snprintf(char *buf, size_t len, uint32_t type,
+ uint32_t flags,
+ struct nft_rule_expr *e)
+{
switch(type) {
case NFT_OUTPUT_DEFAULT:
- return snprintf(buf, len, "pkts %"PRIu64" bytes %"PRIu64" ",
- ctr->pkts, ctr->bytes);
+ return nft_rule_expr_counter_snprintf_default(buf, len, e);
case NFT_OUTPUT_XML:
- return snprintf(buf, len, "<pkts>%"PRIu64"</pkts><bytes>%"PRIu64"</bytes>",
- ctr->pkts, ctr->bytes);
+ return nft_rule_expr_counter_snprintf_xml(buf, len, e);
case NFT_OUTPUT_JSON:
- return snprintf(buf, len, "\"pkts\":%"PRIu64",\"bytes\":%"PRIu64"",
- ctr->pkts, ctr->bytes);
+ return nft_rule_expr_counter_snprintf_json(buf, len, e);
default:
break;
}