diff options
author | laforge <laforge> | 2002-09-20 15:25:13 +0000 |
---|---|---|
committer | laforge <laforge> | 2002-09-20 15:25:13 +0000 |
commit | cde7c7d90c555a4aa1a9c249c8f4cf42d49fe05c (patch) | |
tree | f566fdc9f69c4d6282b38a6902dd72032a59b58e /extensions | |
parent | 013f01f65383c816e3854c78801d1fcc4f24c18c (diff) |
fix connmark and mark match save() functions
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/libipt_connmark.c | 22 | ||||
-rw-r--r-- | extensions/libipt_mark.c | 24 |
2 files changed, 26 insertions, 20 deletions
diff --git a/extensions/libipt_connmark.c b/extensions/libipt_connmark.c index 14cbe33..8f81f02 100644 --- a/extensions/libipt_connmark.c +++ b/extensions/libipt_connmark.c @@ -65,11 +65,8 @@ parse(int c, char **argv, int invert, unsigned int *flags, } static void -print_mark(unsigned long mark, unsigned long mask, int invert, int numeric) +print_mark(unsigned long mark, unsigned long mask, int numeric) { - if (invert) - fputc('!', stdout); - if(mask != 0xffffffff) printf("0x%lx/0x%lx ", mark, mask); else @@ -91,20 +88,25 @@ print(const struct ipt_ip *ip, const struct ipt_entry_match *match, int numeric) { + struct ipt_connmark_info *info = (struct ipt_connmark_info *)match->data; + printf("CONNMARK match "); - print_mark(((struct ipt_connmark_info *)match->data)->mark, - ((struct ipt_connmark_info *)match->data)->mask, - ((struct ipt_connmark_info *)match->data)->invert, numeric); + if (info->invert) + printf("!"); + print_mark(info->mark, info->mask, numeric); } /* Saves the union ipt_matchinfo in parsable form to stdout. */ static void save(const struct ipt_ip *ip, const struct ipt_entry_match *match) { + struct ipt_connmark_info *info = (struct ipt_connmark_info *)match->data; + + if (info->invert) + printf("! "); + printf("--mark "); - print_mark(((struct ipt_connmark_info *)match->data)->mark, - ((struct ipt_connmark_info *)match->data)->mask, - ((struct ipt_connmark_info *)match->data)->invert, 0); + print_mark(info->mark, info->mask, 0); } static diff --git a/extensions/libipt_mark.c b/extensions/libipt_mark.c index 82e826d..4aa780b 100644 --- a/extensions/libipt_mark.c +++ b/extensions/libipt_mark.c @@ -65,11 +65,8 @@ parse(int c, char **argv, int invert, unsigned int *flags, } static void -print_mark(unsigned long mark, unsigned long mask, int invert, int numeric) +print_mark(unsigned long mark, unsigned long mask, int numeric) { - if (invert) - fputc('!', stdout); - if(mask != 0xffffffff) printf("0x%lx/0x%lx ", mark, mask); else @@ -91,20 +88,27 @@ print(const struct ipt_ip *ip, const struct ipt_entry_match *match, int numeric) { + struct ipt_mark_info *info = (struct ipt_mark_info *)match->data; + printf("MARK match "); - print_mark(((struct ipt_mark_info *)match->data)->mark, - ((struct ipt_mark_info *)match->data)->mask, - ((struct ipt_mark_info *)match->data)->invert, numeric); + + if (info->invert) + printf("!"); + + print_mark(info->mark, info->mask, numeric); } /* Saves the union ipt_matchinfo in parsable form to stdout. */ static void save(const struct ipt_ip *ip, const struct ipt_entry_match *match) { + struct ipt_mark_info *info = (struct ipt_mark_info *)match->data; + + if (info->invert) + printf("! "); + printf("--mark "); - print_mark(((struct ipt_mark_info *)match->data)->mark, - ((struct ipt_mark_info *)match->data)->mask, - ((struct ipt_mark_info *)match->data)->invert, 0); + print_mark(info->mark, info->mask, 0); } static |