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.4 retrieving revision 1.4.4.1 diff -u -p -r1.4 -r1.4.4.1 --- src/etc/rc.d/ipfilter 2000/05/13 08:45:07 1.4 +++ src/etc/rc.d/ipfilter 2000/08/09 18:45:22 1.4.4.1 @@ -1,6 +1,6 @@ #!/bin/sh # -# $NetBSD: ipfilter,v 1.4 2000/05/13 08:45:07 lukem Exp $ +# $NetBSD: ipfilter,v 1.4.4.1 2000/08/09 18:45:22 lukem Exp $ # # PROVIDE: ipfilter @@ -9,25 +9,39 @@ . /etc/rc.subr 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 } @@ -49,5 +63,10 @@ ipfilter_reload() fi } +ipfilter_status() +{ + /sbin/ipf -V +} + load_rc_config $name run_rc_command "$1"