Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/etc/rc.d/ipfilter,v rcsdiff: /ftp/cvs/cvsroot/src/etc/rc.d/ipfilter,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.3 retrieving revision 1.6 diff -u -p -r1.3 -r1.6 --- src/etc/rc.d/ipfilter 2000/04/30 13:23:33 1.3 +++ src/etc/rc.d/ipfilter 2000/07/21 01:14:23 1.6 @@ -1,34 +1,47 @@ #!/bin/sh # -# $NetBSD: ipfilter,v 1.3 2000/04/30 13:23:33 lukem Exp $ +# $NetBSD: ipfilter,v 1.6 2000/07/21 01:14:23 lukem Exp $ # # PROVIDE: ipfilter # REQUIRE: root beforenetlkm mountcritlocal tty . /etc/rc.subr -. /etc/rc.conf name="ipfilter" +start_precmd="ipfilter_prestart" start_cmd="ipfilter_start" stop_precmd="checkyesno ipfilter && [ -f /etc/ipf.conf ]" stop_cmd="ipfilter_stop" reload_precmd="$stop_precmd" reload_cmd="ipfilter_reload" -extra_commands="reload" +status_precmd="$stop_precmd" +status_cmd="ipfilter_status" +extra_commands="reload status" -ipfilter_start() +ipfilter_prestart() { if ! checkyesno ipfilter; then - return 0 + return 1 fi - - # if /etc/ipf.conf isn't readable, abort the boot rather - # than risk a security problem - # if [ ! -f /etc/ipf.conf ]; then - err 1 "/etc/ipf.conf not readable; ipfilter start aborted." + warn "/etc/ipf.conf not readable; ipfilter start aborted." + # + # If booting directly to multiuser, send SIGTERM to + # the parent (/etc/rc) to abort the boot + # + if [ "$autoboot" = yes ]; then + echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!" + kill -TERM $$ + exit 1 + fi + return 1 fi + return 0 +} + +ipfilter_start() +{ echo "Enabling ipfilter." /sbin/ipf -E -Fa -f /etc/ipf.conf } @@ -50,4 +63,10 @@ ipfilter_reload() fi } +ipfilter_status() +{ + /sbin/ipf -V +} + +load_rc_config $name run_rc_command "$1"