From 7373297262eef6754570a5cb05c18332c801370f Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Mon, 24 Sep 2018 19:25:23 +0200 Subject: Combine command_match() implementations This merges the basically identical implementations of command_match() from xtables, iptables and ip6tables into one. The only required adjustment was to make use of xt_params instead of the different *_globals objects. Signed-off-by: Phil Sutter Signed-off-by: Florian Westphal --- iptables/iptables.c | 37 ------------------------------------- 1 file changed, 37 deletions(-) (limited to 'iptables/iptables.c') diff --git a/iptables/iptables.c b/iptables/iptables.c index 144550fc..70ba67c9 100644 --- a/iptables/iptables.c +++ b/iptables/iptables.c @@ -1254,43 +1254,6 @@ static void command_jump(struct iptables_command_state *cs) xtables_error(OTHER_PROBLEM, "can't alloc memory!"); } -static void command_match(struct iptables_command_state *cs) -{ - struct xtables_match *m; - size_t size; - - if (cs->invert) - xtables_error(PARAMETER_PROBLEM, - "unexpected ! flag before --match"); - - m = xtables_find_match(optarg, XTF_LOAD_MUST_SUCCEED, &cs->matches); - size = XT_ALIGN(sizeof(struct xt_entry_match)) + m->size; - m->m = xtables_calloc(1, size); - m->m->u.match_size = size; - if (m->real_name == NULL) { - strcpy(m->m->u.user.name, m->name); - } else { - strcpy(m->m->u.user.name, m->real_name); - if (!(m->ext_flags & XTABLES_EXT_ALIAS)) - fprintf(stderr, "Notice: the %s match is converted into %s match " - "in rule listing and saving.\n", m->name, m->real_name); - } - m->m->u.user.revision = m->revision; - - xs_init_match(m); - if (m == m->next) - return; - /* Merge options for non-cloned matches */ - if (m->x6_options != NULL) - opts = xtables_options_xfrm(iptables_globals.orig_opts, opts, - m->x6_options, &m->option_offset); - else if (m->extra_opts != NULL) - opts = xtables_merge_options(iptables_globals.orig_opts, opts, - m->extra_opts, &m->option_offset); - if (opts == NULL) - xtables_error(OTHER_PROBLEM, "can't alloc memory!"); -} - int do_command4(int argc, char *argv[], char **table, struct xtc_handle **handle, bool restore) { -- cgit v1.2.3