From: Patrick McHardy Date: Sat, 2 Dec 2006 17:17:33 +0000 (+0000) Subject: Fix iptables-save not printing -s !0/0 and -d !0/0 as well as ip6tables X-Git-Tag: v1.3.7~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9b7af8bc031472e488eb1feaca06cebbfe28e83;p=thirdparty%2Fiptables.git Fix iptables-save not printing -s !0/0 and -d !0/0 as well as ip6tables unnecessarily printing the address. Base on patch by Daniel De Graaf. --- diff --git a/ip6tables-save.c b/ip6tables-save.c index 37b1f197..486c5224 100644 --- a/ip6tables-save.c +++ b/ip6tables-save.c @@ -125,7 +125,7 @@ static void print_ip(char *prefix, const struct in6_addr *ip, const struct in6_a char buf[51]; int l = ipv6_prefix_length(mask); - if (!mask && !ip) + if (l == 0 && !invert) return; printf("%s %s%s", diff --git a/iptables-save.c b/iptables-save.c index 79b5dc7f..ee189182 100644 --- a/iptables-save.c +++ b/iptables-save.c @@ -141,7 +141,7 @@ static int print_match(const struct ipt_entry_match *e, /* print a given ip including mask if neccessary */ static void print_ip(char *prefix, u_int32_t ip, u_int32_t mask, int invert) { - if (!mask && !ip) + if (!mask && !ip && !invert) return; printf("%s %s%u.%u.%u.%u",