X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=extensions%2Flibip6t_icmpv6.c;h=a29bb38973542caae0f3501daff9e6b142e6dbaf;hb=6afea0b41dfbc3824956d11d960ad80097218feb;hp=52d7871ac683bc2cb908d339d29dd769932c99dd;hpb=f7b70cf9e00324b89b02de213bcd0dde7044d035;p=iptables.git diff --git a/extensions/libip6t_icmpv6.c b/extensions/libip6t_icmpv6.c index 52d7871..a29bb38 100644 --- a/extensions/libip6t_icmpv6.c +++ b/extensions/libip6t_icmpv6.c @@ -90,7 +90,7 @@ static struct option opts[] = { {0} }; -static unsigned int +static void parse_icmpv6(const char *icmpv6type, u_int8_t *type, u_int8_t code[]) { unsigned int limit = sizeof(icmpv6_codes)/sizeof(struct icmpv6_names); @@ -141,10 +141,6 @@ parse_icmpv6(const char *icmpv6type, u_int8_t *type, u_int8_t code[]) code[1] = 0xFF; } } - - if (code[0] == 0 && code[1] == 0xFF) - return NFC_IP6_SRC_PT; - else return NFC_IP6_SRC_PT | NFC_IP6_DST_PT; } /* Initialize the match. */ @@ -169,9 +165,8 @@ parse(int c, char **argv, int invert, unsigned int *flags, switch (c) { case '1': check_inverse(optarg, &invert, &optind, 0); - *nfcache |= parse_icmpv6(argv[optind-1], - &icmpv6info->type, - icmpv6info->code); + parse_icmpv6(argv[optind-1], &icmpv6info->type, + icmpv6info->code); if (invert) icmpv6info->invflags |= IP6T_ICMP_INV; break; @@ -257,19 +252,18 @@ static void final_check(unsigned int flags) { } -static struct ip6tables_match icmpv6 -= { NULL, - "icmp6", - IPTABLES_VERSION, - IP6T_ALIGN(sizeof(struct ip6t_icmp)), - IP6T_ALIGN(sizeof(struct ip6t_icmp)), - &help, - &init, - &parse, - &final_check, - &print, - &save, - opts +static struct ip6tables_match icmpv6 = { + .name = "icmp6", + .version = IPTABLES_VERSION, + .size = IP6T_ALIGN(sizeof(struct ip6t_icmp)), + .userspacesize = IP6T_ALIGN(sizeof(struct ip6t_icmp)), + .help = &help, + .init = &init, + .parse = &parse, + .final_check = &final_check, + .print = &print, + .save = &save, + .extra_opts = opts, }; void _init(void)