diff options
author | András Kis-Szabó <kisza@securityaudit.hu> | 2002-04-24 09:36:30 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2002-04-24 09:36:30 +0000 |
commit | d8a12a841de648bd38dc52ba624d1ed1810a6333 (patch) | |
tree | 6e9caf127a443fb14f1cd8a2a66fd1ac6d637cb5 /extensions/libip6t_frag.c | |
parent | a42041665a9d5d08d52a5f1a27916743fbb2736c (diff) |
Some ipv6 fixes by kisza:
AH save function fix (problem with --len ! 0)
FRAG help fix
FRAG save and prtint fix (problem with --len [!] 0)
Diffstat (limited to 'extensions/libip6t_frag.c')
-rw-r--r-- | extensions/libip6t_frag.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/extensions/libip6t_frag.c b/extensions/libip6t_frag.c index aabb334c..f3882018 100644 --- a/extensions/libip6t_frag.c +++ b/extensions/libip6t_frag.c @@ -17,7 +17,7 @@ help(void) " --fragid [!] id[:id] match the id (range)\n" " --fraglen [!] length total length of this header\n" " --fragres check the reserved filed, too\n" -" --fragfirst matches on the frst fragment\n" +" --fragfirst matches on the first fragment\n" " [--fragmore|--fraglast] there are more fragments or this\n" " is the last one\n", NETFILTER_VERSION); @@ -184,19 +184,6 @@ print_ids(const char *name, u_int32_t min, u_int32_t max, } } -static void -print_len(const char *name, u_int32_t len, int invert) -{ - const char *inv = invert ? "!" : ""; - - if (len != 0 || invert) { - printf("%s", name); - printf(":%s", inv); - printf("%u", len); - printf(" "); - } -} - /* Prints out the union ip6t_matchinfo. */ static void print(const struct ip6t_ip6 *ip, @@ -207,8 +194,12 @@ print(const struct ip6t_ip6 *ip, printf("frag "); print_ids("id", frag->ids[0], frag->ids[1], frag->invflags & IP6T_FRAG_INV_IDS); - print_len("length", frag->hdrlen, - frag->invflags & IP6T_FRAG_INV_LEN); + if (frag->flags & IP6T_FRAG_LEN) { + printf("length"); + printf(":%s", frag->invflags & IP6T_FRAG_INV_LEN ? "!" : ""); + printf("%u", frag->hdrlen); + printf(" "); + } if (frag->flags & IP6T_FRAG_RES) printf("reserved "); if (frag->flags & IP6T_FRAG_FST) printf("first "); if (frag->flags & IP6T_FRAG_MF) printf("more "); @@ -237,7 +228,7 @@ static void save(const struct ip6t_ip6 *ip, const struct ip6t_entry_match *match fraginfo->ids[0]); } - if (fraginfo->hdrlen != 0 ) { + if (fraginfo->flags & IP6T_FRAG_LEN) { printf("--fraglen %s%u ", (fraginfo->invflags & IP6T_FRAG_INV_LEN) ? "! " : "", fraginfo->hdrlen); |