mirror of
https://gitlab.com/shorewall/code.git
synced 2025-06-20 09:47:51 +02:00
Restore module loader to lib.base (it is needed by shorecap).
Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
846715b009
commit
2069855e44
@ -161,6 +161,130 @@ run_user_exit() # $1 = file name
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Load a Kernel Module -- assumes that the variable 'moduledirectories' contains
|
||||||
|
# a space-separated list of directories to search for
|
||||||
|
# the module and that 'moduleloader' contains the
|
||||||
|
# module loader command.
|
||||||
|
#
|
||||||
|
loadmodule() # $1 = module name, $2 - * arguments
|
||||||
|
{
|
||||||
|
local modulename
|
||||||
|
modulename=$1
|
||||||
|
local modulefile
|
||||||
|
local suffix
|
||||||
|
|
||||||
|
if ! list_search $modulename $MODULES $DONT_LOAD ; then
|
||||||
|
shift
|
||||||
|
|
||||||
|
for suffix in $MODULE_SUFFIX ; do
|
||||||
|
for directory in $moduledirectories; do
|
||||||
|
modulefile=$directory/${modulename}.${suffix}
|
||||||
|
|
||||||
|
if [ -f $modulefile ]; then
|
||||||
|
case $moduleloader in
|
||||||
|
insmod)
|
||||||
|
insmod $modulefile $*
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
modprobe $modulename $*
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Reload the Modules
|
||||||
|
#
|
||||||
|
reload_kernel_modules() {
|
||||||
|
|
||||||
|
local save_modules_dir
|
||||||
|
save_modules_dir=$MODULESDIR
|
||||||
|
local directory
|
||||||
|
local moduledirectories
|
||||||
|
moduledirectories=
|
||||||
|
local moduleloader
|
||||||
|
moduleloader=modprobe
|
||||||
|
local uname
|
||||||
|
|
||||||
|
if ! qt mywhich modprobe; then
|
||||||
|
moduleloader=insmod
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -n "${MODULE_SUFFIX:=o gz ko o.gz ko.gz}" ]
|
||||||
|
|
||||||
|
|
||||||
|
[ -z "$MODULESDIR" ] && \
|
||||||
|
uname=$(uname -r) && \
|
||||||
|
MODULESDIR=/lib/modules/$uname/kernel/net/ipv4/netfilter:/lib/modules/$uname/kernel/net/netfilter:/lib/modules/$uname/kernel/net/sched:/lib/modules/$uname/extra:/lib/modules/$uname/extra/ipset
|
||||||
|
|
||||||
|
MODULES=$(lsmod | cut -d ' ' -f1)
|
||||||
|
|
||||||
|
for directory in $(split $MODULESDIR); do
|
||||||
|
[ -d $directory ] && moduledirectories="$moduledirectories $directory"
|
||||||
|
done
|
||||||
|
|
||||||
|
[ -n "$moduledirectories" ] && while read command; do
|
||||||
|
eval $command
|
||||||
|
done
|
||||||
|
|
||||||
|
MODULESDIR=$save_modules_dir
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Load kernel modules required for Shorewall
|
||||||
|
#
|
||||||
|
load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
||||||
|
{
|
||||||
|
local save_modules_dir
|
||||||
|
save_modules_dir=$MODULESDIR
|
||||||
|
local directory
|
||||||
|
local moduledirectories
|
||||||
|
moduledirectories=
|
||||||
|
local moduleloader
|
||||||
|
moduleloader=modprobe
|
||||||
|
local savemoduleinfo
|
||||||
|
savemoduleinfo=${1:-Yes} # So old compiled scripts still work
|
||||||
|
local uname
|
||||||
|
|
||||||
|
if ! qt mywhich modprobe; then
|
||||||
|
moduleloader=insmod
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -n "${MODULE_SUFFIX:=o gz ko o.gz ko.gz}" ]
|
||||||
|
|
||||||
|
[ -z "$MODULESDIR" ] && \
|
||||||
|
uname=$(uname -r) && \
|
||||||
|
MODULESDIR=/lib/modules/$uname/kernel/net/ipv4/netfilter:/lib/modules/$uname/kernel/net/netfilter:/lib/modules/$uname/kernel/net/sched:/lib/modules/$uname/extra:/lib/modules/$uname/extra/ipset
|
||||||
|
|
||||||
|
for directory in $(split $MODULESDIR); do
|
||||||
|
[ -d $directory ] && moduledirectories="$moduledirectories $directory"
|
||||||
|
done
|
||||||
|
|
||||||
|
[ -n "$LOAD_HELPERS_ONLY" ] && modules=$(find_file helpers) || modules=$(find_file modules)
|
||||||
|
|
||||||
|
if [ -f $modules -a -n "$moduledirectories" ]; then
|
||||||
|
MODULES=$(lsmod | cut -d ' ' -f1)
|
||||||
|
progress_message "Loading Modules..."
|
||||||
|
. $modules
|
||||||
|
if [ $savemoduleinfo = Yes ]; then
|
||||||
|
[ -d ${VARDIR} ] || mkdir -p ${VARDIR}
|
||||||
|
echo MODULESDIR="$MODULESDIR" > ${VARDIR}/.modulesdir
|
||||||
|
cp -f $modules ${VARDIR}/.modules
|
||||||
|
fi
|
||||||
|
elif [ $savemoduleinfo = Yes ]; then
|
||||||
|
[ -d ${VARDIR} ] || mkdir -p ${VARDIR}
|
||||||
|
> ${VARDIR}/.modulesdir
|
||||||
|
> ${VARDIR}/.modules
|
||||||
|
fi
|
||||||
|
|
||||||
|
MODULESDIR=$save_modules_dir
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Call this function to assert mutual exclusion with Shorewall. If you invoke the
|
# Call this function to assert mutual exclusion with Shorewall. If you invoke the
|
||||||
# /sbin/shorewall program while holding mutual exclusion, you should pass "nolock" as
|
# /sbin/shorewall program while holding mutual exclusion, you should pass "nolock" as
|
||||||
|
Loading…
x
Reference in New Issue
Block a user