Use $required_modules wherever suitable. Use load_kld() in special
cases. So we get rid of quite a few lines of duplicated code.
This commit is contained in:
parent
619a36fa66
commit
0c30639059
@ -19,13 +19,13 @@ ibcs2_compat()
|
||||
{
|
||||
if checkyesno ibcs2_enable; then
|
||||
echo -n ' ibcs2'
|
||||
kldload ibcs2 > /dev/null 2>&1
|
||||
load_kld ibcs2
|
||||
case ${ibcs2_loaders} in
|
||||
[Nn][Oo])
|
||||
;;
|
||||
*)
|
||||
for i in ${ibcs2_loaders}; do
|
||||
kldload ibcs2_$i > /dev/null 2>&1
|
||||
load_kld ibcs2_$i
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
@ -48,7 +48,7 @@ atm_start()
|
||||
{
|
||||
if [ -n "${natm_interfaces}" ] ; then
|
||||
# Load the HARP pseudo interface
|
||||
kldstat -v | grep -q if_harp || kldload if_harp
|
||||
load_kld if_harp || return 1
|
||||
|
||||
# Load all the NATM drivers that we need
|
||||
for natm in ${natm_interfaces} ; do
|
||||
@ -58,7 +58,7 @@ atm_start()
|
||||
|
||||
# Load loadable HARP drivers
|
||||
for dev in ${atm_load} ; do
|
||||
kldstat -v | grep -q ${dev} || kldload ${dev}
|
||||
load_kld ${dev} || return 1
|
||||
done
|
||||
|
||||
# Locate all probed ATM adapters
|
||||
|
@ -36,6 +36,7 @@ name="bluetooth"
|
||||
rcvar=
|
||||
start_cmd="bluetooth_start"
|
||||
stop_cmd="bluetooth_stop"
|
||||
required_modules="ng_bluetooth ng_hci ng_l2cap ng_btsocket"
|
||||
|
||||
##############################################################################
|
||||
# Read and parse Bluetooth device configuration file
|
||||
@ -231,17 +232,11 @@ bluetooth_start()
|
||||
|
||||
dev=$1
|
||||
|
||||
# Automatically load modules
|
||||
kldload ng_bluetooth > /dev/null 2>&1
|
||||
kldload ng_hci > /dev/null 2>&1
|
||||
kldload ng_l2cap > /dev/null 2>&1
|
||||
kldload ng_btsocket > /dev/null 2>&1
|
||||
|
||||
# Try to figure out device type by looking at device name
|
||||
case "${dev}" in
|
||||
# sioX - serial/UART Bluetooth device
|
||||
sio*)
|
||||
kldload ng_h4 > /dev/null 2>&1
|
||||
load_kld ng_h4 || return 1
|
||||
|
||||
hook="hook"
|
||||
|
||||
|
@ -34,20 +34,15 @@
|
||||
. /etc/rc.subr
|
||||
|
||||
name="geli"
|
||||
start_precmd='[ -n "$(geli_make_list)" ]'
|
||||
start_cmd="geli_start"
|
||||
stop_cmd="geli_stop"
|
||||
required_modules="geom_eli:g_eli"
|
||||
|
||||
geli_start()
|
||||
{
|
||||
devices=`geli_make_list`
|
||||
|
||||
# If there are no devices return before loading geom_eli.ko.
|
||||
if [ -z "${devices}" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
kldstat -q -m g_eli || geli load || err 1 'geom_eli module failed to load.'
|
||||
|
||||
if [ -z "${geli_tries}" ]; then
|
||||
if [ -n "${geli_attach_attempts}" ]; then
|
||||
# Compatibility with rc.d/gbde.
|
||||
|
@ -14,21 +14,7 @@ name="hcsecd"
|
||||
command="/usr/sbin/${name}"
|
||||
pidfile="/var/run/${name}.pid"
|
||||
rcvar=`set_rcvar`
|
||||
start_precmd="hcsecd_prestart"
|
||||
|
||||
hcsecd_prestart()
|
||||
{
|
||||
if ! kldstat -q -m ng_btsocket ; then
|
||||
if kldload ng_btsocket > /dev/null 2>&1 ; then
|
||||
info 'ng_btsocket module loaded'
|
||||
else
|
||||
warn 'ng_btsocket module failed to load'
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
required_modules="ng_btsocket"
|
||||
|
||||
load_rc_config $name
|
||||
config="${hcsecd_config:-/etc/bluetooth/${name}.conf}"
|
||||
|
@ -13,21 +13,8 @@
|
||||
name="ip6fw"
|
||||
rcvar=`set_rcvar ipv6_firewall`
|
||||
start_cmd="ip6fw_start"
|
||||
start_precmd="ip6fw_prestart"
|
||||
stop_cmd="${SYSCTL_W} net.inet6.ip6.fw.enable=0"
|
||||
|
||||
ip6fw_prestart()
|
||||
{
|
||||
# Load IPv6 firewall module, if not already loaded
|
||||
if ! ${SYSCTL} net.inet6.ip6.fw.enable > /dev/null 2>&1; then
|
||||
kldload ipfw && {
|
||||
debug 'Kernel IPv6 firewall module loaded.'
|
||||
return 0
|
||||
}
|
||||
warn 'IPv6 firewall kernel module failed to load.'
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
required_modules="ipfw"
|
||||
|
||||
ip6fw_start()
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ rcvar=`set_rcvar`
|
||||
load_rc_config $name
|
||||
stop_precmd="test -f ${ipfilter_rules} -o -f ${ipv6_ipfilter_rules}"
|
||||
|
||||
start_precmd="ipfilter_prestart"
|
||||
start_precmd="$stop_precmd"
|
||||
start_cmd="ipfilter_start"
|
||||
stop_cmd="ipfilter_stop"
|
||||
reload_precmd="$stop_precmd"
|
||||
@ -26,35 +26,7 @@ resync_cmd="ipfilter_resync"
|
||||
status_precmd="$stop_precmd"
|
||||
status_cmd="ipfilter_status"
|
||||
extra_commands="reload resync status"
|
||||
|
||||
ipfilter_loaded()
|
||||
{
|
||||
if ! kldstat -v | grep "ipfilter$" > /dev/null 2>&1; then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
ipfilter_prestart()
|
||||
{
|
||||
# load ipfilter kernel module if needed
|
||||
if ! ipfilter_loaded; then
|
||||
if kldload ipl; then
|
||||
info 'IP-filter module loaded.'
|
||||
else
|
||||
err 1 'IP-filter module failed to load.'
|
||||
fi
|
||||
fi
|
||||
|
||||
# check for ipfilter rules
|
||||
if [ ! -r "${ipfilter_rules}" ] && [ ! -r "${ipv6_ipfilter_rules}" ]
|
||||
then
|
||||
warn 'IP-filter: NO IPF RULES'
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
required_modules="ipl:ipfilter"
|
||||
|
||||
ipfilter_start()
|
||||
{
|
||||
@ -111,10 +83,6 @@ ipfilter_reload()
|
||||
|
||||
ipfilter_resync()
|
||||
{
|
||||
# Don't resync if ipfilter is not loaded
|
||||
if ! ipfilter_loaded; then
|
||||
return
|
||||
fi
|
||||
${ipfilter_program:-/sbin/ipf} -y ${ipfilter_flags}
|
||||
}
|
||||
|
||||
|
@ -14,20 +14,8 @@
|
||||
name="ipfw"
|
||||
rcvar="firewall_enable"
|
||||
start_cmd="ipfw_start"
|
||||
start_precmd="ipfw_precmd"
|
||||
stop_cmd="ipfw_stop"
|
||||
|
||||
ipfw_precmd()
|
||||
{
|
||||
if ! ${SYSCTL} net.inet.ip.fw.enable > /dev/null 2>&1; then
|
||||
if ! kldload ipfw; then
|
||||
warn unable to load firewall module.
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
required_modules="ipfw"
|
||||
|
||||
ipfw_start()
|
||||
{
|
||||
|
@ -14,31 +14,15 @@
|
||||
name="ipnat"
|
||||
rcvar=`set_rcvar`
|
||||
load_rc_config $name
|
||||
start_precmd="ipnat_precmd"
|
||||
start_cmd="ipnat_start"
|
||||
stop_cmd="${ipnat_program} -F -C"
|
||||
reload_cmd="${ipnat_program} -F -C -f ${ipnat_rules}"
|
||||
extra_commands="reload"
|
||||
|
||||
ipnat_precmd()
|
||||
{
|
||||
# Make sure ipfilter is loaded before continuing
|
||||
if ! ${SYSCTL} net.inet.ipf.fr_pass >/dev/null 2>&1; then
|
||||
if kldload ipl; then
|
||||
info 'IP-filter module loaded.'
|
||||
else
|
||||
err 1 'IP-filter module failed to load.'
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
required_files="${ipnat_rules}"
|
||||
required_modules="ipl:ipfilter"
|
||||
|
||||
ipnat_start()
|
||||
{
|
||||
if [ ! -f ${ipnat_rules} ]; then
|
||||
warn 'NO IPNAT RULES'
|
||||
return 0
|
||||
fi
|
||||
echo "Installing NAT rules."
|
||||
${ipnat_program} -CF -f ${ipnat_rules} ${ipnat_flags}
|
||||
}
|
||||
|
@ -36,6 +36,8 @@
|
||||
name="mdconfig"
|
||||
stop_cmd="mdconfig_stop"
|
||||
start_cmd="mdconfig_start"
|
||||
start_precmd='[ -n "${_mdconfig_list}" ]'
|
||||
required_modules="geom_md:g_md"
|
||||
|
||||
is_readonly()
|
||||
{
|
||||
@ -83,8 +85,6 @@ init_variables()
|
||||
err 2 "You need to specify \"-f <file>\" in mdconfig_${_md} for vnode devices"
|
||||
fi
|
||||
if [ "${_file}" != "${_file%.uzip}" ]; then
|
||||
# Load geom_uzip kernel module if needed
|
||||
kldstat -q -m g_uzip || kldload geom_uzip || err 1 "geom_uzip failed to load."
|
||||
_dev="/dev/${_md}.uzip"
|
||||
fi
|
||||
for _i in `df ${_file} 2>/dev/null`; do _fs=${_i}; done
|
||||
@ -103,13 +103,6 @@ mdconfig_start()
|
||||
{
|
||||
local _md _mp _config _type _dev _file _fs _newfs _fsck_cmd
|
||||
|
||||
# If there are no devices return before loading geom_md.ko.
|
||||
if [ -z "${_mdconfig_list}" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
kldstat -q -m g_md || kldload geom_md || err 1 "geom_md failed to load."
|
||||
|
||||
for _md in ${_mdconfig_list}; do
|
||||
init_variables ${_md}
|
||||
# Create md(4) devices of types swap, malloc and vnode if the
|
||||
@ -120,6 +113,9 @@ mdconfig_start()
|
||||
warn "${_fs} is mounted read-only, skipping ${_md}."
|
||||
continue
|
||||
fi
|
||||
if [ "${_file}" != "${_file%.uzip}" ]; then
|
||||
load_kld -m g_uzip geom_uzip || return 3
|
||||
fi
|
||||
fi
|
||||
if mdconfig -l -u ${_md} >/dev/null 2>&1; then
|
||||
err 3 "${_md} already exists"
|
||||
|
@ -36,6 +36,8 @@
|
||||
name="mdconfig2"
|
||||
stop_cmd="mdconfig2_stop"
|
||||
start_cmd="mdconfig2_start"
|
||||
start_precmd='[ -n "${_mdconfig2_list}" ]'
|
||||
required_modules="geom_md:g_md"
|
||||
|
||||
is_readonly()
|
||||
{
|
||||
@ -88,8 +90,6 @@ init_variables()
|
||||
fi
|
||||
|
||||
if [ "${_file}" != "${_file%.uzip}" ]; then
|
||||
# Load geom_uzip kernel module if needed
|
||||
kldstat -q -m g_uzip || kldload geom_uzip || err 1 "geom_uzip failed to load."
|
||||
_dev="/dev/${_md}.uzip"
|
||||
fi
|
||||
for _i in `df ${_file} 2>/dev/null`; do _fs=${_i}; done
|
||||
@ -111,13 +111,6 @@ mdconfig2_start()
|
||||
{
|
||||
local _md _fs _mp _mounted _dev _config _type _file _owner _perms _files _populate _fsck_cmd _i
|
||||
|
||||
# If there are no devices return before loading geom_md.ko.
|
||||
if [ -z "${_mdconfig2_list}" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
kldstat -q -m g_md || kldload geom_md || err 1 "geom_md failed to load."
|
||||
|
||||
for _md in ${_mdconfig2_list}; do
|
||||
init_variables ${_md}
|
||||
if [ ! -r ${_file} ]; then
|
||||
@ -128,6 +121,9 @@ mdconfig2_start()
|
||||
# non-root partition. Swap and malloc md(4) devices have already
|
||||
# been created.
|
||||
if [ "${_type}" = "vnode" -a "${_fs}" != "/" ]; then
|
||||
if [ "${_file}" != "${_file%.uzip}" ]; then
|
||||
load_kld -m g_uzip geom_uzip || return 3
|
||||
fi
|
||||
if is_readonly ${_fs}; then
|
||||
warn "${_fs} is mounted read-only, skipping ${_md}."
|
||||
continue
|
||||
|
@ -27,11 +27,7 @@ mountcritremote_precmd()
|
||||
case "`mount -d -a -t nfs 2> /dev/null`" in
|
||||
*mount_nfs*)
|
||||
# Handle absent nfs client support
|
||||
if ! sysctl vfs.nfs >/dev/null 2>&1; then
|
||||
kldload nfsclient || { warn 'nfs mount ' \
|
||||
'requested, but no nfs client in kernel'; \
|
||||
return 1; }
|
||||
fi
|
||||
load_kld -m nfs nfsclient || return 1
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
|
@ -14,16 +14,10 @@ rcvar=`set_rcvar`
|
||||
command="/sbin/${name}"
|
||||
pidfile="/var/run/${name}.pid"
|
||||
start_precmd="natd_precmd"
|
||||
required_modules="ipdivert"
|
||||
|
||||
natd_precmd()
|
||||
{
|
||||
if ! ${SYSCTL} net.inet.divert > /dev/null 2>&1; then
|
||||
if ! kldload ipdivert; then
|
||||
warn unable to load IPDIVERT module.
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "${natd_interface}" ]; then
|
||||
dhcp_list="`list_net_interfaces dhcp`"
|
||||
for ifn in ${dhcp_list}; do
|
||||
|
@ -12,20 +12,8 @@
|
||||
name="nfsclient"
|
||||
rcvar="nfs_client_enable"
|
||||
start_cmd="nfsclient_start"
|
||||
start_precmd="nfsclient_precmd"
|
||||
stop_cmd="unmount_all"
|
||||
|
||||
# Load nfs module if it was not compiled into the kernel
|
||||
nfsclient_precmd()
|
||||
{
|
||||
if ! sysctl vfs.nfs >/dev/null 2>&1; then
|
||||
if ! kldload nfsclient; then
|
||||
warn 'Could not load nfs client module'
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
required_modules="nfsclient:nfs"
|
||||
|
||||
nfsclient_start()
|
||||
{
|
||||
|
@ -11,20 +11,9 @@
|
||||
|
||||
name="nfsserver"
|
||||
rcvar="nfs_server_enable"
|
||||
start_cmd="nfsserver_start"
|
||||
start_cmd=":"
|
||||
stop_cmd=":"
|
||||
|
||||
# Load nfs modules if they were not compiled into the kernel
|
||||
nfsserver_start()
|
||||
{
|
||||
if ! sysctl vfs.nfsrv >/dev/null 2>&1; then
|
||||
if ! kldload nfsserver; then
|
||||
warn 'Could not load NFS server module'
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
required_modules="nfsserver"
|
||||
|
||||
load_rc_config $name
|
||||
run_rc_command "$1"
|
||||
|
16
etc/rc.d/pf
16
etc/rc.d/pf
@ -13,7 +13,6 @@
|
||||
name="pf"
|
||||
rcvar=`set_rcvar`
|
||||
load_rc_config $name
|
||||
start_precmd="pf_prestart"
|
||||
start_cmd="pf_start"
|
||||
stop_cmd="pf_stop"
|
||||
check_cmd="pf_check"
|
||||
@ -22,20 +21,7 @@ resync_cmd="pf_resync"
|
||||
status_cmd="pf_status"
|
||||
extra_commands="check reload resync status"
|
||||
required_files="$pf_rules"
|
||||
|
||||
pf_prestart()
|
||||
{
|
||||
# load pf kernel module if needed
|
||||
if ! kldstat -q -m pf ; then
|
||||
if kldload pf ; then
|
||||
info 'pf module loaded.'
|
||||
else
|
||||
warn 'pf module failed to load.'
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
required_modules="pf"
|
||||
|
||||
pf_start()
|
||||
{
|
||||
|
@ -22,15 +22,7 @@ resync_cmd="pflog_resync"
|
||||
|
||||
pflog_prestart()
|
||||
{
|
||||
# load pflog kernel module if needed
|
||||
if ! kldstat -q -m pflog; then
|
||||
if kldload pflog; then
|
||||
info 'pflog module loaded.'
|
||||
else
|
||||
warn 'pflog module failed to load.'
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
load_kld pflog || return 1
|
||||
|
||||
# set pflog0 interface to up state
|
||||
if ! ifconfig pflog0 up; then
|
||||
|
@ -14,26 +14,23 @@ rcvar=`set_rcvar`
|
||||
start_precmd="pfsync_prestart"
|
||||
start_cmd="pfsync_start"
|
||||
stop_cmd="pfsync_stop"
|
||||
required_modules="pf"
|
||||
|
||||
pfsync_prestart()
|
||||
{
|
||||
# XXX Currently pfsync cannot be a module as it must register
|
||||
# a network protocol in a static kernel table.
|
||||
if ! kldstat -q -m pfsync; then
|
||||
warn "pfsync(4) must be statically compiled in the kernel."
|
||||
return 1
|
||||
fi
|
||||
|
||||
case "$pfsync_syncdev" in
|
||||
'')
|
||||
warn "pfsync_syncdev is not set."
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# load pf kernel module if needed
|
||||
if ! kldstat -q -m pf ; then
|
||||
if kldload pf ; then
|
||||
info "pf module loaded."
|
||||
else
|
||||
warn "pf module failed to load."
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -13,21 +13,7 @@
|
||||
name="sdpd"
|
||||
command="/usr/sbin/${name}"
|
||||
rcvar=`set_rcvar`
|
||||
start_precmd="sdpd_prestart"
|
||||
|
||||
sdpd_prestart()
|
||||
{
|
||||
if ! kldstat -q -m ng_btsocket ; then
|
||||
if kldload ng_btsocket > /dev/null 2>&1 ; then
|
||||
info 'ng_btsocket module loaded'
|
||||
else
|
||||
warn 'ng_btsocket module failed to load'
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
required_modules="ng_btsocket"
|
||||
|
||||
load_rc_config $name
|
||||
control="${sdpd_control:-/var/run/sdp}"
|
||||
|
@ -213,7 +213,7 @@ syscons_start()
|
||||
for i in `kldstat | awk '$5 ~ "^splash_.*$" { print $5 }'`; do
|
||||
kldunload ${i}
|
||||
done
|
||||
kldstat -v | grep -q _saver || kldload ${saver}_saver
|
||||
load_kld -e _saver ${saver}_saver
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
||||
name="ugidfw"
|
||||
rcvar="ugidfw_enable"
|
||||
start_cmd="ugidfw_start"
|
||||
start_precmd="ugidfw_precmd"
|
||||
stop_cmd="ugidfw_stop"
|
||||
required_modules="mac_bsdextended"
|
||||
|
||||
ugidfw_load()
|
||||
{
|
||||
@ -22,20 +22,6 @@ ugidfw_load()
|
||||
fi
|
||||
}
|
||||
|
||||
ugidfw_precmd()
|
||||
{
|
||||
if ! sysctl security.mac.bsdextended
|
||||
then kldload mac_bsdextended
|
||||
if [ "$?" -ne "0" ]
|
||||
then warn Unable to load the mac_bsdextended module.
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
ugidfw_start()
|
||||
{
|
||||
[ -z "${bsdextended_script}" ] && bsdextended_script=/etc/rc.bsdextended
|
||||
|
Loading…
Reference in New Issue
Block a user