static int parse(int c, char **argv, int invert, unsigned int *flags, const struct ipt_entry *entry, unsigned int *nfcache, struct ipt_entry_match **match) { struct ipt_length_info *info = (struct ipt_length_info *)(*match)->data; switch (c) { case '1': if (*flags) exit_error(PARAMETER_PROBLEM, "length: `--length' may only be " "specified once"); check_inverse(optarg, &invert, &optind, 0); parse_lengths(argv[optind-1], info); if (invert) info->invert = 1; *flags = 1; break; default: return 0; } return 1; }
static int length_parse(int c, char **argv, int invert, unsigned int *flags, const void *entry, struct xt_entry_match **match) { struct xt_length_info *info = (struct xt_length_info *)(*match)->data; switch (c) { case '1': if (*flags) xtables_error(PARAMETER_PROBLEM, "length: `--length' may only be " "specified once"); xtables_check_inverse(optarg, &invert, &optind, 0, argv); parse_lengths(optarg, info); if (invert) info->invert = 1; *flags = 1; break; } return 1; }