1 #!/bin/sh 2 # 3 # $NetBSD: ipsec,v 1.3.2.2 2000/10/02 01:09:50 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 rcvar=$name 15 start_precmd="ipsec_prestart" 16 start_cmd="ipsec_start" 17 stop_precmd="test -f /etc/ipsec.conf" 18 stop_cmd="ipsec_stop" 19 reload_cmd="ipsec_reload" 20 extra_commands="reload" 21 22 ipsec_prestart() 23 { 24 if [ ! -f /etc/ipsec.conf ]; then 25 warn "/etc/ipsec.conf not readable; ipsec start aborted." 26 # 27 # If booting directly to multiuser, send SIGTERM to 28 # the parent (/etc/rc) to abort the boot 29 # 30 if [ "$autoboot" = yes ]; then 31 echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!" 32 kill -TERM $$ 33 exit 1 34 fi 35 return 1 36 fi 37 return 0 38 } 39 40 ipsec_start() 41 { 42 echo "Installing ipsec manual keys/policies." 43 /sbin/setkey -f /etc/ipsec.conf 44 } 45 46 ipsec_stop() 47 { 48 echo "Clearing ipsec manual keys/policies." 49 50 # still not 100% sure if we would like to do this. 51 # it is very questionable to do this during shutdown session, since 52 # it can hang any of remaining IPv4/v6 session. 53 # 54 /sbin/setkey -F 55 /sbin/setkey -FP 56 } 57 58 ipsec_reload() 59 { 60 echo "Reloading ipsec manual keys/policies." 61 /sbin/setkey -F 62 /sbin/setkey -FP 63 /sbin/setkey -f /etc/ipsec.conf 64 } 65 66 load_rc_config $name 67 run_rc_command "$1" 68