/* Function which parses command options; returns true if it ate an option */ 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_tcpmss_match_info *mssinfo = (struct ipt_tcpmss_match_info *)(*match)->data; switch (c) { case '1': if (*flags) exit_error(PARAMETER_PROBLEM, "Only one `--mss' allowed"); check_inverse(optarg, &invert, &optind, 0); parse_tcp_mssvalues(argv[optind-1], &mssinfo->mss_min, &mssinfo->mss_max); if (invert) mssinfo->invert = 1; *flags = 1; break; default: return 0; } return 1; }
static int tcpmss_parse(int c, char **argv, int invert, unsigned int *flags, const void *entry, struct xt_entry_match **match) { struct xt_tcpmss_match_info *mssinfo = (struct xt_tcpmss_match_info *)(*match)->data; switch (c) { case '1': if (*flags) xtables_error(PARAMETER_PROBLEM, "Only one `--mss' allowed"); xtables_check_inverse(optarg, &invert, &optind, 0, argv); parse_tcp_mssvalues(optarg, &mssinfo->mss_min, &mssinfo->mss_max); if (invert) mssinfo->invert = 1; *flags = 1; break; default: return 0; } return 1; }