]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
expr: counter: Add nft_rule_expr_counter_snprinf_* functions
authorAna Rey <anarey@gmail.com>
Tue, 24 Jun 2014 07:15:35 +0000 (09:15 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 24 Jun 2014 08:43:14 +0000 (10:43 +0200)
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>
src/expr/counter.c

index 4bb7f1b1dd61f7c6d7908aa4008e681664efe331..65acee372f4de25a10d618f8f303b0b2c468d270 100644 (file)
@@ -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;
        }