aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlibexec/rc/rc.d/ipfw15
1 files changed, 14 insertions, 1 deletions
diff --git a/libexec/rc/rc.d/ipfw b/libexec/rc/rc.d/ipfw
index 50d95543023d..5d0bcc816560 100755
--- a/libexec/rc/rc.d/ipfw
+++ b/libexec/rc/rc.d/ipfw
@@ -47,7 +47,7 @@ ipfw_prestart()
ipfw_start()
{
- local _firewall_type
+ local _firewall_type _module _sysctl_reload
if [ -n "${1}" ]; then
_firewall_type=$1
@@ -55,6 +55,19 @@ ipfw_start()
_firewall_type=${firewall_type}
fi
+ _sysctl_reload=no
+ for _module in ${required_modules}
+ do
+ if kldstat -qn ${_module}; then
+ _sysctl_reload=yes
+ break
+ fi
+ done
+
+ if [ ${_sysctl_reload} = yes ]; then
+ /etc/rc.d/sysctl reload
+ fi
+
# set the firewall rules script if none was specified
[ -z "${firewall_script}" ] && firewall_script=/etc/rc.firewall