Home | History | Annotate | Line # | Download | only in rc.d
ipfilter revision 1.9
      1 #!/bin/sh
      2 #
      3 # $NetBSD: ipfilter,v 1.9 2000/10/09 06:11:38 nisimura Exp $
      4 #
      5 
      6 # PROVIDE: ipfilter
      7 # REQUIRE: root beforenetlkm mountcritlocal tty
      8 
      9 . /etc/rc.subr
     10 
     11 name="ipfilter"
     12 rcvar=$name
     13 start_precmd="ipfilter_prestart"
     14 start_cmd="ipfilter_start"
     15 stop_precmd="test -f /etc/ipf.conf -o -f /etc/ipf6.conf"
     16 stop_cmd="ipfilter_stop"
     17 reload_precmd="$stop_precmd"
     18 reload_cmd="ipfilter_reload"
     19 status_precmd="$stop_precmd"
     20 status_cmd="ipfilter_status"
     21 extra_commands="reload status"
     22 
     23 ipfilter_prestart()
     24 {
     25 	if [ ! -f /etc/ipf.conf ] && [ ! -f /etc/ipf6.conf ]; then
     26 		warn "/etc/ipf*.conf not readable; ipfilter start aborted."
     27 			#
     28 			# If booting directly to multiuser, send SIGTERM to
     29 			# the parent (/etc/rc) to abort the boot
     30 			#
     31 		if [ "$autoboot" = yes ]; then
     32 			echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
     33 			kill -TERM $$
     34 			exit 1
     35 		fi
     36 		return 1
     37 	fi
     38 	return 0
     39 }
     40 
     41 ipfilter_start()
     42 {
     43 	echo "Enabling ipfilter."
     44 	/sbin/ipf -E -Fa
     45 	if [ -f /etc/ipf.conf ]; then
     46 		/sbin/ipf -f /etc/ipf.conf
     47 	fi
     48 	if [ -f /etc/ipf6.conf ]; then
     49 		/sbin/ipf -6 -f /etc/ipf6.conf
     50 	fi
     51 }
     52 
     53 ipfilter_stop()
     54 {
     55 	echo "Disabling ipfilter."
     56 	/sbin/ipf -D
     57 }
     58 
     59 ipfilter_reload()
     60 {
     61 	echo "Reloading ipfilter rules."
     62 
     63 	/sbin/ipf -I -Fa
     64 	if [ -f /etc/ipf.conf ] && ! /sbin/ipf -I -f /etc/ipf.conf; then
     65 		err 1 "reload of ipf.conf failed; not swapping to new ruleset."
     66 	fi
     67 	if [ -f /etc/ipf6.conf ] && ! /sbin/ipf -I -6 -f /etc/ipf6.conf; then
     68 		err 1 "reload of ipf6.conf failed; not swapping to new ruleset."
     69 	fi
     70 	/sbin/ipf -s
     71 }
     72 
     73 ipfilter_status()
     74 {
     75 	/sbin/ipf -V
     76 }
     77 
     78 load_rc_config $name
     79 run_rc_command "$1"
     80