From 0782cc7eb455e25e072522ac146f3a679879c19f Mon Sep 17 00:00:00 2001 From: gandalf Date: Sat, 14 Jun 2003 14:27:51 +0000 Subject: Fix save-invert printout (David Zambonini, me) --- extensions/libip6t_mac.c | 17 +++++++++++------ extensions/libipt_mac.c | 17 +++++++++++------ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/extensions/libip6t_mac.c b/extensions/libip6t_mac.c index fe0d3a4..617b353 100644 --- a/extensions/libip6t_mac.c +++ b/extensions/libip6t_mac.c @@ -86,11 +86,11 @@ parse(int c, char **argv, int invert, unsigned int *flags, return 1; } -static void print_mac(unsigned char macaddress[ETH_ALEN], int invert) +static void print_mac(unsigned char macaddress[ETH_ALEN]) { unsigned int i; - printf("%s%02X", invert ? "! " : "", macaddress[0]); + printf("%02X", macaddress[0]); for (i = 1; i < ETH_ALEN; i++) printf(":%02X", macaddress[i]); printf(" "); @@ -111,16 +111,21 @@ print(const struct ip6t_ip6 *ip, int numeric) { printf("MAC "); - print_mac(((struct ip6t_mac_info *)match->data)->srcaddr, - ((struct ip6t_mac_info *)match->data)->invert); + + if (((struct ip6t_mac_info *)match->data)->invert) + printf("! "); + + print_mac(((struct ip6t_mac_info *)match->data)->srcaddr); } /* Saves the union ip6t_matchinfo in parsable form to stdout. */ static void save(const struct ip6t_ip6 *ip, const struct ip6t_entry_match *match) { + if (((struct ip6t_mac_info *)match->data)->invert) + printf("! "); + printf("--mac-source "); - print_mac(((struct ip6t_mac_info *)match->data)->srcaddr, - ((struct ip6t_mac_info *)match->data)->invert); + print_mac(((struct ip6t_mac_info *)match->data)->srcaddr); } static diff --git a/extensions/libipt_mac.c b/extensions/libipt_mac.c index b9d3b36..d1079a5 100644 --- a/extensions/libipt_mac.c +++ b/extensions/libipt_mac.c @@ -86,11 +86,11 @@ parse(int c, char **argv, int invert, unsigned int *flags, return 1; } -static void print_mac(unsigned char macaddress[ETH_ALEN], int invert) +static void print_mac(unsigned char macaddress[ETH_ALEN]) { unsigned int i; - printf("%s%02X", invert ? "! " : "", macaddress[0]); + printf("%02X", macaddress[0]); for (i = 1; i < ETH_ALEN; i++) printf(":%02X", macaddress[i]); printf(" "); @@ -111,16 +111,21 @@ print(const struct ipt_ip *ip, int numeric) { printf("MAC "); - print_mac(((struct ipt_mac_info *)match->data)->srcaddr, - ((struct ipt_mac_info *)match->data)->invert); + + if (((struct ipt_mac_info *)match->data)->invert) + printf("! "); + + print_mac(((struct ipt_mac_info *)match->data)->srcaddr); } /* Saves the union ipt_matchinfo in parsable form to stdout. */ static void save(const struct ipt_ip *ip, const struct ipt_entry_match *match) { + if (((struct ipt_mac_info *)match->data)->invert) + printf("! "); + printf("--mac-source "); - print_mac(((struct ipt_mac_info *)match->data)->srcaddr, - ((struct ipt_mac_info *)match->data)->invert); + print_mac(((struct ipt_mac_info *)match->data)->srcaddr); } static -- cgit v1.2.3