This way we can avoid having to provide two dumping function for new plugins. Signed-off-by: Jan Engelhardt <jengelh@xxxxxxx> --- iptables/ip6tables.c | 12 ++++++++++-- iptables/iptables.c | 10 ++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/iptables/ip6tables.c b/iptables/ip6tables.c index 371d700..aa22e52 100644 --- a/iptables/ip6tables.c +++ b/iptables/ip6tables.c @@ -487,10 +487,14 @@ print_match(const struct xt_entry_match *m, xtables_find_match(m->u.user.name, XTF_TRY_LOAD, NULL); if (match) { - if (match->print) + if (match->print) { match->print(ip, m, numeric); - else + } else if (match->save != NULL) { + printf("-m %s ", match->name); + match->save(ip, m); + } else { printf("%s ", match->name); + } } else { if (m->u.user.name[0]) printf("UNKNOWN match `%s' ", m->u.user.name); @@ -617,6 +621,10 @@ print_firewall(const struct ip6t_entry *fw, if (target->print) /* Print the target information. */ target->print(&fw->ipv6, t, format & FMT_NUMERIC); + else if (target->save != NULL) { + printf("hi world"); + target->save(&fw->ipv6, t); + } } else if (t->u.target_size != sizeof(*t)) printf("[%u bytes of unknown target data] ", (unsigned int)(t->u.target_size - sizeof(*t))); diff --git a/iptables/iptables.c b/iptables/iptables.c index 6e5250e..5be5e78 100644 --- a/iptables/iptables.c +++ b/iptables/iptables.c @@ -472,10 +472,14 @@ print_match(const struct xt_entry_match *m, xtables_find_match(m->u.user.name, XTF_TRY_LOAD, NULL); if (match) { - if (match->print) + if (match->print) { match->print(ip, m, numeric); - else + } else if (match->save != NULL) { + printf("-m %s ", match->name); + match->save(ip, m); + } else { printf("%s ", match->name); + } } else { if (m->u.user.name[0]) printf("UNKNOWN match `%s' ", m->u.user.name); @@ -602,6 +606,8 @@ print_firewall(const struct ipt_entry *fw, if (target->print) /* Print the target information. */ target->print(&fw->ip, t, format & FMT_NUMERIC); + else if (target->save != NULL) + target->save(&fw->ip, t); } else if (t->u.target_size != sizeof(*t)) printf("[%u bytes of unknown target data] ", (unsigned int)(t->u.target_size - sizeof(*t))); -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html