rem: *nfcache |= NFC_IP_DST_PT;
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_sctp_info *einfo		= (struct ipt_sctp_info *)(*match)->data;	switch (c) {	case '1':		if (*flags & IPT_SCTP_SRC_PORTS)			exit_error(PARAMETER_PROBLEM,			           "Only one `--source-port' allowed");		einfo->flags |= IPT_SCTP_SRC_PORTS;		check_inverse(optarg, &invert, &optind, 0);		parse_sctp_ports(argv[optind-1], einfo->spts);		if (invert)			einfo->invflags |= IPT_SCTP_SRC_PORTS;		*flags |= IPT_SCTP_SRC_PORTS;		*nfcache |= NFC_IP_SRC_PT;		break;	case '2':		if (*flags & IPT_SCTP_DEST_PORTS)			exit_error(PARAMETER_PROBLEM,				   "Only one `--destination-port' allowed");		einfo->flags |= IPT_SCTP_DEST_PORTS;		check_inverse(optarg, &invert, &optind, 0);		parse_sctp_ports(argv[optind-1], einfo->dpts);		if (invert)			einfo->invflags |= IPT_SCTP_DEST_PORTS;		*flags |= IPT_SCTP_DEST_PORTS;		*nfcache |= NFC_IP_DST_PT;		break;	case '3':		if (*flags & IPT_SCTP_CHUNK_TYPES)			exit_error(PARAMETER_PROBLEM,				   "Only one `--chunk-types' allowed");		check_inverse(optarg, &invert, &optind, 0);		if (!argv[optind] 		    || argv[optind][0] == '-' || argv[optind][0] == '!')			exit_error(PARAMETER_PROBLEM,				   "--chunk-types requires two args");		einfo->flags |= IPT_SCTP_CHUNK_TYPES;		parse_sctp_chunks(einfo, argv[optind-1], argv[optind]);		if (invert)			einfo->invflags |= IPT_SCTP_CHUNK_TYPES;		optind++;		*flags |= IPT_SCTP_CHUNK_TYPES;		break;	default:		return 0;	}	return 1;}