ipsec revision 1.3
11.1Sitojun#!/bin/sh
21.1Sitojun#
31.3Sitojun# $NetBSD: ipsec,v 1.3 2000/06/14 03:24:16 itojun Exp $
41.1Sitojun#
51.1Sitojun
61.1Sitojun# PROVIDE: ipsec
71.1Sitojun# REQUIRE: root beforenetlkm mountcritlocal tty
81.1Sitojun
91.1Sitojun#	it does not really require beforenetlkm.
101.1Sitojun
111.1Sitojun. /etc/rc.subr
121.1Sitojun
131.1Sitojunname="ipsec"
141.1Sitojunstart_cmd="ipsec_start"
151.1Sitojunstop_precmd="checkyesno ipsec && [ -f /etc/ipsec.conf ]"
161.1Sitojunstop_cmd="ipsec_stop"
171.1Sitojunreload_precmd="$stop_precmd"
181.1Sitojunreload_cmd="ipsec_reload"
191.1Sitojunextra_commands="reload"
201.1Sitojun
211.1Sitojunipsec_start()
221.1Sitojun{
231.1Sitojun	if ! checkyesno ipsec; then
241.1Sitojun		return 0
251.1Sitojun	fi
261.1Sitojun
271.1Sitojun	# if /etc/ipsec.conf isn't readable, abort the boot rather
281.1Sitojun	# than risk a security problem
291.1Sitojun	#
301.1Sitojun	if [ ! -f /etc/ipsec.conf ]; then
311.1Sitojun		err 1 "/etc/ipsec.conf not readable; ipsec start aborted."
321.1Sitojun	fi
331.2Sitojun	# XXX should check if ipsec.conf is secure enough
341.2Sitojun	#
351.1Sitojun	echo "Installing ipsec manual keys/policies."
361.1Sitojun	/sbin/setkey -f /etc/ipsec.conf
371.1Sitojun}
381.1Sitojun
391.1Sitojunipsec_stop()
401.1Sitojun{
411.3Sitojun	echo "Clearing ipsec manual keys/policies."
421.1Sitojun
431.1Sitojun	# still not 100% sure if we would like to do this.
441.1Sitojun	# it is very questionable to do this during shutdown session, since
451.1Sitojun	# it can hang any of remaining IPv4/v6 session.
461.1Sitojun	#
471.1Sitojun	/sbin/setkey -F
481.1Sitojun	/sbin/setkey -FP
491.1Sitojun}
501.1Sitojun
511.1Sitojunipsec_reload()
521.1Sitojun{
531.1Sitojun	echo "Reloading ipsec manual keys/policies."
541.1Sitojun	/sbin/setkey -F
551.1Sitojun	/sbin/setkey -FP
561.1Sitojun	/sbin/setkey -f /etc/ipsec.conf
571.1Sitojun}
581.1Sitojun
591.1Sitojunload_rc_config $name
601.1Sitojunrun_rc_command "$1"
61