Home | History | Annotate | Line # | Download | only in rc.d
ipsec revision 1.3.2.1
      1 #!/bin/sh
      2 #
      3 # $NetBSD: ipsec,v 1.3.2.1 2000/08/09 18:47:13 lukem Exp $
      4 #
      5 
      6 # PROVIDE: ipsec
      7 # REQUIRE: root beforenetlkm mountcritlocal tty
      8 
      9 #	it does not really require beforenetlkm.
     10 
     11 . /etc/rc.subr
     12 
     13 name="ipsec"
     14 start_precmd="ipsec_prestart"
     15 start_cmd="ipsec_start"
     16 stop_precmd="checkyesno ipsec && [ -f /etc/ipsec.conf ]"
     17 stop_cmd="ipsec_stop"
     18 reload_precmd="$stop_precmd"
     19 reload_cmd="ipsec_reload"
     20 extra_commands="reload"
     21 
     22 ipsec_prestart()
     23 {
     24 	if ! checkyesno ipsec; then
     25 		return 1
     26 	fi
     27 	if [ ! -f /etc/ipsec.conf ]; then
     28 		warn "/etc/ipsec.conf not readable; ipsec start aborted."
     29 			#
     30 			# If booting directly to multiuser, send SIGTERM to
     31 			# the parent (/etc/rc) to abort the boot
     32 			#
     33 		if [ "$autoboot" = yes ]; then
     34 			echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
     35 			kill -TERM $$
     36 			exit 1
     37 		fi
     38 		return 1
     39 	fi
     40 	return 0
     41 }
     42 
     43 ipsec_start()
     44 {
     45 	echo "Installing ipsec manual keys/policies."
     46 	/sbin/setkey -f /etc/ipsec.conf
     47 }
     48 
     49 ipsec_stop()
     50 {
     51 	echo "Clearing ipsec manual keys/policies."
     52 
     53 	# still not 100% sure if we would like to do this.
     54 	# it is very questionable to do this during shutdown session, since
     55 	# it can hang any of remaining IPv4/v6 session.
     56 	#
     57 	/sbin/setkey -F
     58 	/sbin/setkey -FP
     59 }
     60 
     61 ipsec_reload()
     62 {
     63 	echo "Reloading ipsec manual keys/policies."
     64 	/sbin/setkey -F
     65 	/sbin/setkey -FP
     66 	/sbin/setkey -f /etc/ipsec.conf
     67 }
     68 
     69 load_rc_config $name
     70 run_rc_command "$1"
     71