diff options
| -rw-r--r-- | conf.c | 3 | ||||
| -rw-r--r-- | fwd_rule.c | 16 | ||||
| -rw-r--r-- | fwd_rule.h | 20 |
3 files changed, 21 insertions, 18 deletions
@@ -902,7 +902,8 @@ dns6: dir = "Inbound"; info("%s forwarding rules (%s):", dir, pif_name(i)); - fwd_rules_info(c->fwd[i]->rules, c->fwd[i]->count); + fwd_rules_dump(info, c->fwd[i]->rules, c->fwd[i]->count, + " ", ""); } } @@ -124,7 +124,6 @@ const union inany_addr *fwd_rule_addr(const struct fwd_rule *rule) */ __attribute__((noinline)) #endif -/* cppcheck-suppress staticFunction */ const char *fwd_rule_fmt(const struct fwd_rule *rule, char *dst, size_t size) { const char *percent = *rule->ifname ? "%" : ""; @@ -159,21 +158,6 @@ const char *fwd_rule_fmt(const struct fwd_rule *rule, char *dst, size_t size) } /** - * fwd_rules_info() - Print forwarding rules for debugging - * @fwd: Table to print - */ -void fwd_rules_info(const struct fwd_rule *rules, size_t count) -{ - unsigned i; - - for (i = 0; i < count; i++) { - char buf[FWD_RULE_STRLEN]; - - info(" %s", fwd_rule_fmt(&rules[i], buf, sizeof(buf))); - } -} - -/** * fwd_rule_conflicts() - Test if two rules conflict with each other * @a, @b: Rules to test */ @@ -97,7 +97,25 @@ void fwd_probe_ephemeral(void); const union inany_addr *fwd_rule_addr(const struct fwd_rule *rule); const char *fwd_rule_fmt(const struct fwd_rule *rule, char *dst, size_t size); -void fwd_rules_info(const struct fwd_rule *rules, size_t count); void fwd_rule_parse(char optname, const char *optarg, struct fwd_table *fwd); +/** + * fwd_rules_dump() - Dump forwarding rules + * @fn: Printing/logging function to call + * @rules: Array of rules to dump + * @count: Number of rules to dump + * @prefix: String to print at the start of each rule + * @suffix: String to print at the end of each rule + */ +#define fwd_rules_dump(fn, rules, count, prefix, suffix) \ + do { \ + unsigned i_; \ + for (i_ = 0; i_ < (count); i_++) { \ + char buf_[FWD_RULE_STRLEN]; \ + fn("%s%s%s", prefix, \ + fwd_rule_fmt(&(rules)[i_], buf_, sizeof(buf_)), \ + suffix); \ + } \ + } while (0) + #endif /* FWD_RULE_H */ |
