From d2b93afad7a67840d16d424b3cf5ce5255fca7ad Mon Sep 17 00:00:00 2001 From: Varsha Rao Date: Mon, 17 Jul 2017 13:59:07 +0200 Subject: src: Remove __init and __exit macro definitions. Add nft_init and nft_exit functions, which calls _init and _exit functions in main.c file. Remove __init and __exit macro definitions as libnftables library will be created soon. Rename realm_table_init() and realm_table_exit() functions to avoid ambiguity as realm_table_rt_init(), realm_table_meta_init, realm_table_rt_exit() and realm_table_meta_exit() in rt.c and meta.c files. Signed-off-by: Varsha Rao Signed-off-by: Pablo Neira Ayuso --- src/ct.c | 4 ++-- src/datatype.c | 4 ++-- src/gmputil.c | 2 +- src/main.c | 24 ++++++++++++++++++++++++ src/meta.c | 8 ++++---- src/rt.c | 4 ++-- src/xt.c | 2 +- 7 files changed, 36 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/ct.c b/src/ct.c index 9b7140b3..d64f4672 100644 --- a/src/ct.c +++ b/src/ct.c @@ -205,12 +205,12 @@ static const struct datatype ct_label_type = { .parse = ct_label_type_parse, }; -static void __init ct_label_table_init(void) +void ct_label_table_init(void) { ct_label_tbl = rt_symbol_table_init(CONNLABEL_CONF); } -static void __exit ct_label_table_exit(void) +void ct_label_table_exit(void) { rt_symbol_table_free(ct_label_tbl); } diff --git a/src/datatype.c b/src/datatype.c index 287ca009..5bd0c7b3 100644 --- a/src/datatype.c +++ b/src/datatype.c @@ -719,12 +719,12 @@ void rt_symbol_table_free(struct symbol_table *tbl) } static struct symbol_table *mark_tbl; -static void __init mark_table_init(void) +void mark_table_init(void) { mark_tbl = rt_symbol_table_init("/etc/iproute2/rt_marks"); } -static void __exit mark_table_exit(void) +void mark_table_exit(void) { rt_symbol_table_free(mark_tbl); } diff --git a/src/gmputil.c b/src/gmputil.c index c7637927..844ea618 100644 --- a/src/gmputil.c +++ b/src/gmputil.c @@ -207,7 +207,7 @@ static void *gmp_xrealloc(void *ptr, size_t old_size, size_t new_size) return xrealloc(ptr, new_size); } -static void __init gmp_init(void) +void gmp_init(void) { mp_set_memory_functions(xmalloc, gmp_xrealloc, NULL); } diff --git a/src/main.c b/src/main.c index 36b4bbc6..1535153e 100644 --- a/src/main.c +++ b/src/main.c @@ -263,6 +263,28 @@ err1: return ret; } +void nft_init(void) +{ + mark_table_init(); + realm_table_rt_init(); + devgroup_table_init(); + realm_table_meta_init(); + ct_label_table_init(); + gmp_init(); +#ifdef HAVE_LIBXTABLES + xt_init(); +#endif +} + +void nft_exit(void) +{ + ct_label_table_exit(); + realm_table_rt_exit(); + devgroup_table_exit(); + realm_table_meta_exit(); + mark_table_exit(); +} + int main(int argc, char * const *argv) { struct parser_state state; @@ -274,6 +296,7 @@ int main(int argc, char * const *argv) int i, val, rc = NFT_EXIT_SUCCESS; struct mnl_socket *nf_sock; + nft_init(); nf_sock = netlink_open_sock(); while (1) { val = getopt_long(argc, argv, OPTSTRING, options, NULL); @@ -401,6 +424,7 @@ out: cache_release(); iface_cache_release(); netlink_close_sock(nf_sock); + nft_exit(); return rc; } diff --git a/src/meta.c b/src/meta.c index e9334b86..9c808930 100644 --- a/src/meta.c +++ b/src/meta.c @@ -37,12 +37,12 @@ #include static struct symbol_table *realm_tbl; -static void __init realm_table_init(void) +void realm_table_meta_init(void) { realm_tbl = rt_symbol_table_init("/etc/iproute2/rt_realms"); } -static void __exit realm_table_exit(void) +void realm_table_meta_exit(void) { rt_symbol_table_free(realm_tbl); } @@ -333,12 +333,12 @@ const struct datatype pkttype_type = { }; static struct symbol_table *devgroup_tbl; -static void __init devgroup_table_init(void) +void devgroup_table_init(void) { devgroup_tbl = rt_symbol_table_init("/etc/iproute2/group"); } -static void __exit devgroup_table_exit(void) +void devgroup_table_exit(void) { rt_symbol_table_free(devgroup_tbl); } diff --git a/src/rt.c b/src/rt.c index 530ebe6e..cd2d5a4e 100644 --- a/src/rt.c +++ b/src/rt.c @@ -24,12 +24,12 @@ #include static struct symbol_table *realm_tbl; -static void __init realm_table_init(void) +void realm_table_rt_init(void) { realm_tbl = rt_symbol_table_init("/etc/iproute2/rt_realms"); } -static void __exit realm_table_exit(void) +void realm_table_rt_exit(void) { rt_symbol_table_free(realm_tbl); } diff --git a/src/xt.c b/src/xt.c index e24b0af0..9680f8ec 100644 --- a/src/xt.c +++ b/src/xt.c @@ -351,7 +351,7 @@ static struct xtables_globals xt_nft_globals = { .compat_rev = nft_xt_compatible_revision, }; -static void __init xt_init(void) +void xt_init(void) { /* Default to IPv4, but this changes in runtime */ xtables_init_all(&xt_nft_globals, NFPROTO_IPV4); -- cgit v1.2.3