static void state_parse(struct xt_option_call *cb) { struct xt_state_info *sinfo = cb->data; xtables_option_parse(cb); state_parse_states(cb->arg, sinfo); if (cb->invert) sinfo->statemask = ~sinfo->statemask; }
static void state_ct23_parse(struct xt_option_call *cb) { struct xt_conntrack_mtinfo3 *sinfo = cb->data; xtables_option_parse(cb); sinfo->match_flags = XT_CONNTRACK_STATE; sinfo->state_mask = state_parse_states(cb->arg); if (cb->invert) sinfo->invert_flags |= XT_CONNTRACK_STATE; }
static int state_parse(int c, char **argv, int invert, unsigned int *flags, const void *entry, struct xt_entry_match **match) { struct xt_state_info *sinfo = (struct xt_state_info *)(*match)->data; switch (c) { case '1': xtables_check_inverse(optarg, &invert, &optind, 0, argv); state_parse_states(optarg, sinfo); if (invert) sinfo->statemask = ~sinfo->statemask; *flags = 1; break; } return 1; }