summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlaforge <laforge>2002-09-20 15:25:13 +0000
committerlaforge <laforge>2002-09-20 15:25:13 +0000
commitcde7c7d90c555a4aa1a9c249c8f4cf42d49fe05c (patch)
treef566fdc9f69c4d6282b38a6902dd72032a59b58e
parent013f01f65383c816e3854c78801d1fcc4f24c18c (diff)
fix connmark and mark match save() functions
-rw-r--r--extensions/libipt_connmark.c22
-rw-r--r--extensions/libipt_mark.c24
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