From 2c586fbb6ac21fbfeb289df21d47c8726220422f Mon Sep 17 00:00:00 2001 From: "/C=JP/ST=JP/CN=Yasuyuki Kozakai/emailAddress=yasuyuki@netfilter.org" Date: Mon, 30 Jul 2007 14:32:26 +0000 Subject: Makes it possible to omit extra_opts of matches/targets if unnecessary. (Jan Engelhardt ) A nice side effect is that merge_option() doesn't copy options in that case. --- extensions/libip6t_TRACE.c | 5 ----- extensions/libip6t_eui64.c | 5 ----- extensions/libipt_MIRROR.c | 5 ----- extensions/libipt_TRACE.c | 5 ----- extensions/libipt_unclean.c | 5 ----- extensions/libxt_NOTRACK.c | 6 ------ extensions/libxt_standard.c | 6 ------ ip6tables.c | 3 +++ iptables.c | 3 +++ 9 files changed, 6 insertions(+), 37 deletions(-) diff --git a/extensions/libip6t_TRACE.c b/extensions/libip6t_TRACE.c index edbb416..9784093 100644 --- a/extensions/libip6t_TRACE.c +++ b/extensions/libip6t_TRACE.c @@ -16,10 +16,6 @@ help(void) IPTABLES_VERSION); } -static struct option opts[] = { - { 0 } -}; - /* Initialize the target. */ static void init(struct ip6t_entry_target *t, unsigned int *nfcache) @@ -54,7 +50,6 @@ struct ip6tables_target trace .final_check = &final_check, .print = NULL, /* print */ .save = NULL, /* save */ - .extra_opts = opts }; void _init(void) diff --git a/extensions/libip6t_eui64.c b/extensions/libip6t_eui64.c index 0d22df7..e95944b 100644 --- a/extensions/libip6t_eui64.c +++ b/extensions/libip6t_eui64.c @@ -22,10 +22,6 @@ help(void) "\n", IPTABLES_VERSION); } -static struct option opts[] = { - {0} -}; - /* Function which parses command options; returns true if it ate an option */ static int @@ -67,7 +63,6 @@ static struct ip6tables_match eui64 = { .final_check = &final_check, .print = &print, .save = &save, - .extra_opts = opts, }; void _init(void) diff --git a/extensions/libipt_MIRROR.c b/extensions/libipt_MIRROR.c index 02923b8..2e3fb47 100644 --- a/extensions/libipt_MIRROR.c +++ b/extensions/libipt_MIRROR.c @@ -16,10 +16,6 @@ help(void) IPTABLES_VERSION); } -static struct option opts[] = { - { 0 } -}; - /* Initialize the target. */ static void init(struct xt_entry_target *t, unsigned int *nfcache) @@ -52,7 +48,6 @@ static struct iptables_target mirror = { .final_check = &final_check, .print = NULL, .save = NULL, - .extra_opts = opts }; void _init(void) diff --git a/extensions/libipt_TRACE.c b/extensions/libipt_TRACE.c index 22652cb..d5c073e 100644 --- a/extensions/libipt_TRACE.c +++ b/extensions/libipt_TRACE.c @@ -16,10 +16,6 @@ help(void) IPTABLES_VERSION); } -static struct option opts[] = { - { 0 } -}; - /* Initialize the target. */ static void init(struct ipt_entry_target *t, unsigned int *nfcache) @@ -54,7 +50,6 @@ struct iptables_target trace .final_check = &final_check, .print = NULL, /* print */ .save = NULL, /* save */ - .extra_opts = opts }; void _init(void) diff --git a/extensions/libipt_unclean.c b/extensions/libipt_unclean.c index 8bb2963..4ac4191 100644 --- a/extensions/libipt_unclean.c +++ b/extensions/libipt_unclean.c @@ -13,10 +13,6 @@ help(void) "\n", IPTABLES_VERSION); } -static struct option opts[] = { - {0} -}; - /* Function which parses command options; returns true if it ate an option */ static int @@ -44,7 +40,6 @@ struct iptables_match unclean = { .final_check = &final_check, .print = NULL, .save = NULL, - .extra_opts = opts }; void _init(void) diff --git a/extensions/libxt_NOTRACK.c b/extensions/libxt_NOTRACK.c index 220a9b8..370ff21 100644 --- a/extensions/libxt_NOTRACK.c +++ b/extensions/libxt_NOTRACK.c @@ -16,10 +16,6 @@ help(void) IPTABLES_VERSION); } -static struct option opts[] = { - { 0 } -}; - /* Initialize the target. */ static void init(struct xt_entry_target *t, unsigned int *nfcache) @@ -53,7 +49,6 @@ struct xtables_target notrack = .init = &init, .parse = &parse, .final_check = &final_check, - .extra_opts = opts, }; static @@ -68,7 +63,6 @@ struct xtables_target notrack6 = .init = &init, .parse = &parse, .final_check = &final_check, - .extra_opts = opts, }; void _init(void) diff --git a/extensions/libxt_standard.c b/extensions/libxt_standard.c index 3838ac6..9aafb6c 100644 --- a/extensions/libxt_standard.c +++ b/extensions/libxt_standard.c @@ -16,10 +16,6 @@ help(void) "(If target is DROP, ACCEPT, RETURN or nothing)\n", IPTABLES_VERSION); } -static struct option opts[] = { - {0} -}; - /* Initialize the target. */ static void init(struct xt_entry_target *t, unsigned int *nfcache) @@ -60,7 +56,6 @@ struct xtables_target standard = { .final_check = &final_check, .print = NULL, .save = &save, - .extra_opts = opts }; static @@ -76,7 +71,6 @@ struct xtables_target standard6 = { .final_check = &final_check, .print = NULL, .save = &save, - .extra_opts = opts }; void _init(void) diff --git a/ip6tables.c b/ip6tables.c index 8f8c2c2..0f96981 100644 --- a/ip6tables.c +++ b/ip6tables.c @@ -815,6 +815,9 @@ merge_options(struct option *oldopts, const struct option *newopts, unsigned int num_old, num_new, i; struct option *merge; + if (newopts == NULL) + return oldopts; + for (num_old = 0; oldopts[num_old].name; num_old++); for (num_new = 0; newopts[num_new].name; num_new++); diff --git a/iptables.c b/iptables.c index b894f6a..78ac13c 100644 --- a/iptables.c +++ b/iptables.c @@ -853,6 +853,9 @@ merge_options(struct option *oldopts, const struct option *newopts, unsigned int num_old, num_new, i; struct option *merge; + if (newopts == NULL) + return oldopts; + for (num_old = 0; oldopts[num_old].name; num_old++); for (num_new = 0; newopts[num_new].name; num_new++); -- cgit v1.2.3