summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2002-12-05 19:39:10 +0000
committerHarald Welte <laforge@gnumonks.org>2002-12-05 19:39:10 +0000
commit9647359b12021df45159f38d6c16687b58623434 (patch)
tree846c5a3c7f670e3c7b6daf05e8e868d5f9b2e104 /extensions
parentd57b0609ef00da33bcbc4a7b718a88b141f06c28 (diff)
fix save function of libipt_tos
Diffstat (limited to 'extensions')
-rw-r--r--extensions/libipt_tos.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/extensions/libipt_tos.c b/extensions/libipt_tos.c
index b0cd2e01..6786911d 100644
--- a/extensions/libipt_tos.c
+++ b/extensions/libipt_tos.c
@@ -105,13 +105,10 @@ parse(int c, char **argv, int invert, unsigned int *flags,
}
static void
-print_tos(u_int8_t tos, int invert, int numeric)
+print_tos(u_int8_t tos, int numeric)
{
unsigned int i;
- if (invert)
- fputc('!', stdout);
-
if (!numeric) {
for (i = 0; i<sizeof(TOS_values)/sizeof(struct TOS_value); i++)
if (TOS_values[i].TOS == tos) {
@@ -137,18 +134,24 @@ print(const struct ipt_ip *ip,
const struct ipt_entry_match *match,
int numeric)
{
+ const struct ipt_tos_info *info = (const struct ipt_tos_info *)match->data;
+
printf("TOS match ");
- print_tos(((struct ipt_tos_info *)match->data)->tos,
- ((struct ipt_tos_info *)match->data)->invert, numeric);
+ if (info->invert)
+ printf("!");
+ print_tos(info->tos, 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)
{
+ const struct ipt_tos_info *info = (const struct ipt_tos_info *)match->data;
+
+ if (info->invert)
+ printf("! ");
printf("--tos ");
- print_tos(((struct ipt_tos_info *)match->data)->tos,
- ((struct ipt_tos_info *)match->data)->invert, 0);
+ print_tos(info->tos, 0);
}
static