diff options
author | Jan Engelhardt <jengelh@medozas.de> | 2009-01-27 15:59:06 +0100 |
---|---|---|
committer | Jan Engelhardt <jengelh@medozas.de> | 2009-01-27 23:14:30 +0100 |
commit | 39bf9c8214d3073a496a8a1eff91046a8d6fbbdf (patch) | |
tree | 2dd9a61eb114cdaaa6fe44f895784f112d24ca56 | |
parent | 2338efd8f799d8373dc196c797bda9690283b698 (diff) |
libxtables: prefix/order - libdir
Consolidate the libdir variable initialization code into xtables.c.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
-rw-r--r-- | include/xtables.h.in | 1 | ||||
-rw-r--r-- | include/xtables/internal.h | 2 | ||||
-rw-r--r-- | ip6tables-restore.c | 11 | ||||
-rw-r--r-- | ip6tables-save.c | 11 | ||||
-rw-r--r-- | ip6tables-standalone.c | 11 | ||||
-rw-r--r-- | iptables-restore.c | 11 | ||||
-rw-r--r-- | iptables-save.c | 11 | ||||
-rw-r--r-- | iptables-standalone.c | 11 | ||||
-rw-r--r-- | xtables.c | 23 |
9 files changed, 27 insertions, 65 deletions
diff --git a/include/xtables.h.in b/include/xtables.h.in index 02a832db..268c42e4 100644 --- a/include/xtables.h.in +++ b/include/xtables.h.in @@ -159,6 +159,7 @@ extern const char *xtables_modprobe_program; extern struct xtables_match *xtables_matches; extern struct xtables_target *xtables_targets; +extern void xtables_init(void); extern void *xtables_calloc(size_t, size_t); extern void *xtables_malloc(size_t); diff --git a/include/xtables/internal.h b/include/xtables/internal.h index 60375cd1..21c4401f 100644 --- a/include/xtables/internal.h +++ b/include/xtables/internal.h @@ -26,8 +26,6 @@ struct afinfo { int so_rev_target; }; -extern char *lib_dir; - /* This is decleared in ip[6]tables.c */ extern struct afinfo afinfo; diff --git a/ip6tables-restore.c b/ip6tables-restore.c index 097711f3..6be1a36c 100644 --- a/ip6tables-restore.c +++ b/ip6tables-restore.c @@ -130,16 +130,7 @@ int main(int argc, char *argv[]) program_version = XTABLES_VERSION; line = 0; - lib_dir = getenv("XTABLES_LIBDIR"); - if (lib_dir == NULL) { - lib_dir = getenv("IP6TABLES_LIB_DIR"); - if (lib_dir != NULL) - fprintf(stderr, "IP6TABLES_LIB_DIR is deprecated, " - "use XTABLES_LIBDIR.\n"); - } - if (lib_dir == NULL) - lib_dir = XTABLES_LIBDIR; - + xtables_init(); #ifdef NO_SHARED_LIBS init_extensions(); #endif diff --git a/ip6tables-save.c b/ip6tables-save.c index 11ef8c48..1b9d00ae 100644 --- a/ip6tables-save.c +++ b/ip6tables-save.c @@ -139,16 +139,7 @@ int main(int argc, char *argv[]) program_name = "ip6tables-save"; program_version = XTABLES_VERSION; - lib_dir = getenv("XTABLES_LIBDIR"); - if (lib_dir == NULL) { - lib_dir = getenv("IP6TABLES_LIB_DIR"); - if (lib_dir != NULL) - fprintf(stderr, "IP6TABLES_LIB_DIR is deprecated, " - "use XTABLES_LIBDIR.\n"); - } - if (lib_dir == NULL) - lib_dir = XTABLES_LIBDIR; - + xtables_init(); #ifdef NO_SHARED_LIBS init_extensions(); #endif diff --git a/ip6tables-standalone.c b/ip6tables-standalone.c index f4b1f18f..95435576 100644 --- a/ip6tables-standalone.c +++ b/ip6tables-standalone.c @@ -52,16 +52,7 @@ main(int argc, char *argv[]) program_name = "ip6tables"; program_version = XTABLES_VERSION; - lib_dir = getenv("XTABLES_LIBDIR"); - if (lib_dir == NULL) { - lib_dir = getenv("IP6TABLES_LIB_DIR"); - if (lib_dir != NULL) - fprintf(stderr, "IP6TABLES_LIB_DIR is deprecated, " - "use XTABLES_LIBDIR.\n"); - } - if (lib_dir == NULL) - lib_dir = XTABLES_LIBDIR; - + xtables_init(); #ifdef NO_SHARED_LIBS init_extensions(); #endif diff --git a/iptables-restore.c b/iptables-restore.c index 3fbc9087..d982fca1 100644 --- a/iptables-restore.c +++ b/iptables-restore.c @@ -132,16 +132,7 @@ main(int argc, char *argv[]) program_version = XTABLES_VERSION; line = 0; - lib_dir = getenv("XTABLES_LIBDIR"); - if (lib_dir == NULL) { - lib_dir = getenv("IPTABLES_LIB_DIR"); - if (lib_dir != NULL) - fprintf(stderr, "IPTABLES_LIB_DIR is deprecated, " - "use XTABLES_LIBDIR.\n"); - } - if (lib_dir == NULL) - lib_dir = XTABLES_LIBDIR; - + xtables_init(); #ifdef NO_SHARED_LIBS init_extensions(); #endif diff --git a/iptables-save.c b/iptables-save.c index 7118d1f2..e615de99 100644 --- a/iptables-save.c +++ b/iptables-save.c @@ -139,16 +139,7 @@ main(int argc, char *argv[]) program_name = "iptables-save"; program_version = XTABLES_VERSION; - lib_dir = getenv("XTABLES_LIBDIR"); - if (lib_dir == NULL) { - lib_dir = getenv("IPTABLES_LIB_DIR"); - if (lib_dir != NULL) - fprintf(stderr, "IPTABLES_LIB_DIR is deprecated, " - "use XTABLES_LIBDIR.\n"); - } - if (lib_dir == NULL) - lib_dir = XTABLES_LIBDIR; - + xtables_init(); #ifdef NO_SHARED_LIBS init_extensions(); #endif diff --git a/iptables-standalone.c b/iptables-standalone.c index 3f2432fe..c06b2862 100644 --- a/iptables-standalone.c +++ b/iptables-standalone.c @@ -53,16 +53,7 @@ main(int argc, char *argv[]) program_name = "iptables"; program_version = XTABLES_VERSION; - lib_dir = getenv("XTABLES_LIBDIR"); - if (lib_dir == NULL) { - lib_dir = getenv("IPTABLES_LIB_DIR"); - if (lib_dir != NULL) - fprintf(stderr, "IPTABLES_LIB_DIR is deprecated, " - "use XTABLES_LIBDIR.\n"); - } - if (lib_dir == NULL) - lib_dir = XTABLES_LIBDIR; - + xtables_init(); #ifdef NO_SHARED_LIBS init_extensions(); #endif @@ -44,7 +44,8 @@ #define PROC_SYS_MODPROBE "/proc/sys/kernel/modprobe" #endif -char *lib_dir; +/* Search path for Xtables .so files */ +static const char *xtables_libdir; /* the path to command to load kernel module */ const char *xtables_modprobe_program; @@ -53,6 +54,20 @@ const char *xtables_modprobe_program; struct xtables_match *xtables_matches; struct xtables_target *xtables_targets; +void xtables_init(void) +{ + xtables_libdir = getenv("XTABLES_LIBDIR"); + if (xtables_libdir != NULL) + return; + xtables_libdir = getenv("IPTABLES_LIB_DIR"); + if (xtables_libdir != NULL) { + fprintf(stderr, "IPTABLES_LIB_DIR is deprecated, " + "use XTABLES_LIBDIR.\n"); + return; + } + xtables_libdir = XTABLES_LIBDIR; +} + /** * xtables_*alloc - wrappers that exit on failure */ @@ -398,7 +413,8 @@ xtables_find_match(const char *name, enum xtables_tryload tryload, #ifndef NO_SHARED_LIBS if (!ptr && tryload != XTF_DONT_LOAD && tryload != XTF_DURING_LOAD) { - ptr = load_extension(lib_dir, afinfo.libprefix, name, false); + ptr = load_extension(xtables_libdir, afinfo.libprefix, + name, false); if (ptr == NULL && tryload == XTF_LOAD_MUST_SUCCEED) exit_error(PARAMETER_PROBLEM, @@ -457,7 +473,8 @@ xtables_find_target(const char *name, enum xtables_tryload tryload) #ifndef NO_SHARED_LIBS if (!ptr && tryload != XTF_DONT_LOAD && tryload != XTF_DURING_LOAD) { - ptr = load_extension(lib_dir, afinfo.libprefix, name, true); + ptr = load_extension(xtables_libdir, afinfo.libprefix, + name, true); if (ptr == NULL && tryload == XTF_LOAD_MUST_SUCCEED) exit_error(PARAMETER_PROBLEM, |