diff options
author | emax <emax@FreeBSD.org> | 2009-03-30 21:31:52 +0000 |
---|---|---|
committer | emax <emax@FreeBSD.org> | 2009-03-30 21:31:52 +0000 |
commit | a567037bb2c4f5f3796c2b117e7612a91b37c5ff (patch) | |
tree | 82ae98f9e85031cb2f5c1808f08e52e21dcdab76 /etc | |
parent | 67399c37a8ea6efeff9a9c9c333ecc8c31688e4c (diff) | |
download | FreeBSD-src-a567037bb2c4f5f3796c2b117e7612a91b37c5ff.zip FreeBSD-src-a567037bb2c4f5f3796c2b117e7612a91b37c5ff.tar.gz |
- Add ipfw_nat to the list of required modules if "firewall_nat_enable"
is set and "natd_enable" is NOT set;
- Accept and pass firewall type to the external firewall script.
Submitted by: Yuri Kurenkov < y -dot- kurenkov -at- init -dot- ru >
MFC after: 3 days
No response from: freebsd-rc
Diffstat (limited to 'etc')
-rwxr-xr-x | etc/rc.d/ipfw | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/etc/rc.d/ipfw b/etc/rc.d/ipfw index 44af170..2780943 100755 --- a/etc/rc.d/ipfw +++ b/etc/rc.d/ipfw @@ -23,10 +23,20 @@ ipfw_prestart() if checkyesno dummynet_enable; then required_modules="$required_modules dummynet" fi + + if checkyesno firewall_nat_enable; then + if ! checkyesno natd_enable; then + required_modules="$required_modules ipfw_nat" + fi + fi } ipfw_start() { + local _firewall_type + + _firewall_type=$1 + # set the firewall rules script if none was specified [ -z "${firewall_script}" ] && firewall_script=/etc/rc.firewall @@ -34,7 +44,7 @@ ipfw_start() if [ -f /etc/rc.d/natd ] ; then /etc/rc.d/natd quietstart fi - /bin/sh "${firewall_script}" + /bin/sh "${firewall_script}" "${_firewall_type}" echo 'Firewall rules loaded.' elif [ "`ipfw list 65535`" = "65535 deny ip from any to any" ]; then echo 'Warning: kernel has firewall functionality, but' \ @@ -67,4 +77,4 @@ ipfw_stop() } load_rc_config $name -run_rc_command "$1" +run_rc_command $* |