add: case '6': if ((!invert) && (*flags & IPT_IPV4OPTION_MATCH_ROUTER_ALERT)) exit_error(PARAMETER_PROBLEM, "Can't specify --ra twice"); if (invert && (*flags & IPT_IPV4OPTION_DONT_MATCH_ROUTER_ALERT)) exit_error(PARAMETER_PROBLEM, "Can't specify ! --rr twice"); if ((!invert) && (*flags & IPT_IPV4OPTION_DONT_MATCH_ROUTER_ALERT)) exit_error(PARAMETER_PROBLEM, "Can't specify --ra with ! --ra"); if (invert && (*flags & IPT_IPV4OPTION_MATCH_ROUTER_ALERT)) exit_error(PARAMETER_PROBLEM, "Can't specify ! --ra with --ra"); if (invert) { info->options |= IPT_IPV4OPTION_DONT_MATCH_ROUTER_ALERT; *flags |= IPT_IPV4OPTION_DONT_MATCH_ROUTER_ALERT; } else { info->options |= IPT_IPV4OPTION_MATCH_ROUTER_ALERT; *flags |= IPT_IPV4OPTION_MATCH_ROUTER_ALERT; } break;
context: 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_ipv4options_info *info = (struct ipt_ipv4options_info *)(*match)->data;	switch (c)	{		/* strict-source-routing */	case '1':		if (invert) 			exit_error(PARAMETER_PROBLEM,				   "ipv4options: unexpected `!' with --ssrr");		if (*flags & IPT_IPV4OPTION_MATCH_SSRR)                        exit_error(PARAMETER_PROBLEM,                                   "Can't specify --ssrr twice");		if (*flags & IPT_IPV4OPTION_MATCH_LSRR)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ssrr with --lsrr");		if (*flags & IPT_IPV4OPTION_DONT_MATCH_SRR)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ssrr with --no-srr");		info->options |= IPT_IPV4OPTION_MATCH_SSRR;		*flags |= IPT_IPV4OPTION_MATCH_SSRR;		break;		/* loose-source-routing */	case '2':		if (invert) 			exit_error(PARAMETER_PROBLEM,				   "ipv4options: unexpected `!' with --lsrr");		if (*flags & IPT_IPV4OPTION_MATCH_SSRR)                        exit_error(PARAMETER_PROBLEM,                                   "Can't specify --lsrr twice");		if (*flags & IPT_IPV4OPTION_MATCH_LSRR)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --lsrr with --ssrr");		if (*flags & IPT_IPV4OPTION_DONT_MATCH_SRR)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --lsrr with --no-srr");		info->options |= IPT_IPV4OPTION_MATCH_LSRR;		*flags |= IPT_IPV4OPTION_MATCH_LSRR;		break;		/* no-source-routing */	case '3':		if (invert) 			exit_error(PARAMETER_PROBLEM,					   "ipv4options: unexpected `!' with --no-srr");		if (*flags & IPT_IPV4OPTION_DONT_MATCH_SRR)                        exit_error(PARAMETER_PROBLEM,                                   "Can't specify --no-srr twice");		if (*flags & IPT_IPV4OPTION_MATCH_SSRR)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --no-srr with --ssrr");		if (*flags & IPT_IPV4OPTION_MATCH_LSRR)			exit_error(PARAMETER_PROBLEM,				   "Can't specify --no-srr with --lsrr");		info->options |= IPT_IPV4OPTION_DONT_MATCH_SRR;		*flags |= IPT_IPV4OPTION_DONT_MATCH_SRR;		break;		/* record-route */	case '4':		if ((!invert) && (*flags & IPT_IPV4OPTION_MATCH_RR))			exit_error(PARAMETER_PROBLEM,				   "Can't specify --rr twice");			if (invert && (*flags & IPT_IPV4OPTION_DONT_MATCH_RR))			exit_error(PARAMETER_PROBLEM,				   "Can't specify ! --rr twice");		if ((!invert) && (*flags & IPT_IPV4OPTION_DONT_MATCH_RR))			exit_error(PARAMETER_PROBLEM,				   "Can't specify --rr with ! --rr");		if (invert && (*flags & IPT_IPV4OPTION_MATCH_RR))			exit_error(PARAMETER_PROBLEM,				   "Can't specify ! --rr with --rr");		if (invert) {			info->options |= IPT_IPV4OPTION_DONT_MATCH_RR;			*flags |= IPT_IPV4OPTION_DONT_MATCH_RR;		}		else {			info->options |= IPT_IPV4OPTION_MATCH_RR;			*flags |= IPT_IPV4OPTION_MATCH_RR;		}		break;		/* timestamp */	case '5':		if ((!invert) && (*flags & IPT_IPV4OPTION_MATCH_TIMESTAMP))			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ts twice");			if (invert && (*flags & IPT_IPV4OPTION_DONT_MATCH_TIMESTAMP))			exit_error(PARAMETER_PROBLEM,				   "Can't specify ! --ts twice");		if ((!invert) && (*flags & IPT_IPV4OPTION_DONT_MATCH_TIMESTAMP))			exit_error(PARAMETER_PROBLEM,				   "Can't specify --ts with ! --ts");		if (invert && (*flags & IPT_IPV4OPTION_MATCH_TIMESTAMP))			exit_error(PARAMETER_PROBLEM,				   "Can't specify ! --ts with --ts");		if (invert) {			info->options |= IPT_IPV4OPTION_DONT_MATCH_TIMESTAMP;			*flags |= IPT_IPV4OPTION_DONT_MATCH_TIMESTAMP;		}		else {			info->options |= IPT_IPV4OPTION_MATCH_TIMESTAMP;			*flags |= IPT_IPV4OPTION_MATCH_TIMESTAMP;		}		break;	default:		return 0;	}	return 1;}