From 89122493a39f76a530ee0db862986d63b9186e83 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Thu, 28 Sep 2017 17:17:43 +0200 Subject: erec_print: Pass output FILE pointer to netlink_dump_expr() It was a bit odd that erec_print() outputs to a given FILE pointer but then calls netlink_dump_expr() which just prints to stdout. Fix this by passing the given FILE pointer along so output is guaranteed to go to the same destination. Signed-off-by: Phil Sutter Signed-off-by: Pablo Neira Ayuso --- include/netlink.h | 2 +- src/erec.c | 2 +- src/netlink.c | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/netlink.h b/include/netlink.h index b395cf1c..79dc08f8 100644 --- a/include/netlink.h +++ b/include/netlink.h @@ -184,7 +184,7 @@ extern void netlink_dump_chain(const struct nftnl_chain *nlc, extern void netlink_dump_rule(const struct nftnl_rule *nlr, unsigned int debug_mask); extern void netlink_dump_expr(const struct nftnl_expr *nle, - unsigned int debug_mask); + FILE *fp, unsigned int debug_mask); extern void netlink_dump_set(const struct nftnl_set *nls, unsigned int debug_mask); extern void netlink_dump_obj(struct nftnl_obj *nlo, unsigned int debug_mask); diff --git a/src/erec.c b/src/erec.c index f62bc78c..174d1aeb 100644 --- a/src/erec.c +++ b/src/erec.c @@ -153,7 +153,7 @@ void erec_print(FILE *f, const struct error_record *erec, fprintf(f, "%s\n", erec->msg); for (l = 0; l < (int)erec->num_locations; l++) { loc = &erec->locations[l]; - netlink_dump_expr(loc->nle, debug_mask); + netlink_dump_expr(loc->nle, f, debug_mask); } fprintf(f, "\n"); } else { diff --git a/src/netlink.c b/src/netlink.c index e414718b..3183a810 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -515,7 +515,8 @@ void netlink_dump_rule(const struct nftnl_rule *nlr, unsigned int debug_mask) fprintf(stdout, "%s\n", buf); } -void netlink_dump_expr(const struct nftnl_expr *nle, unsigned int debug_mask) +void netlink_dump_expr(const struct nftnl_expr *nle, + FILE *fp, unsigned int debug_mask) { char buf[4096]; @@ -523,7 +524,7 @@ void netlink_dump_expr(const struct nftnl_expr *nle, unsigned int debug_mask) return; nftnl_expr_snprintf(buf, sizeof(buf), nle, 0, 0); - fprintf(stdout, "%s\n", buf); + fprintf(fp, "%s\n", buf); } static int list_rule_cb(struct nftnl_rule *nlr, void *arg) -- cgit v1.2.3