From 39bf9c8214d3073a496a8a1eff91046a8d6fbbdf Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Tue, 27 Jan 2009 15:59:06 +0100 Subject: libxtables: prefix/order - libdir Consolidate the libdir variable initialization code into xtables.c. Signed-off-by: Jan Engelhardt --- xtables.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'xtables.c') diff --git a/xtables.c b/xtables.c index fb5cc628..85bd76c0 100644 --- a/xtables.c +++ b/xtables.c @@ -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, -- cgit v1.2.3