ipsec revision 169668
178344Sobrien#!/bin/sh
278344Sobrien#
398184Sgordon# $NetBSD: ipsec,v 1.7 2002/03/22 04:33:58 thorpej Exp $
498184Sgordon# $FreeBSD: head/etc/rc.d/ipsec 169668 2007-05-18 12:04:41Z mtm $
578344Sobrien#
678344Sobrien
778344Sobrien# PROVIDE: ipsec
8168531Sdes# REQUIRE: FILESYSTEMS
9151272Spjd# BEFORE:  DAEMON mountcritremote
10136224Smtm# KEYWORD: nojail
1178344Sobrien
1278344Sobrien. /etc/rc.subr
1378344Sobrien
1478344Sobrienname="ipsec"
1598184Sgordonrcvar=`set_rcvar`
1678344Sobrienstart_precmd="ipsec_prestart"
1778344Sobrienstart_cmd="ipsec_start"
18154770Spjdstop_precmd="test -f $ipsec_file"
1978344Sobrienstop_cmd="ipsec_stop"
2078344Sobrienreload_cmd="ipsec_reload"
2178344Sobrienextra_commands="reload"
22151270Spjdipsec_program="/sbin/setkey"
23124618Smtm# ipsec_file is set by rc.conf
2478344Sobrien
2578344Sobrienipsec_prestart()
2678344Sobrien{
2798184Sgordon	if [ ! -f "$ipsec_file" ]; then
2898184Sgordon		warn "$ipsec_file not readable; ipsec start aborted."
29169668Smtm		stop_boot
3078344Sobrien		return 1
3178344Sobrien	fi
3278344Sobrien	return 0
3378344Sobrien}
3478344Sobrien
3578344Sobrienipsec_start()
3678344Sobrien{
3778344Sobrien	echo "Installing ipsec manual keys/policies."
38101085Sume	${ipsec_program} -f $ipsec_file
3978344Sobrien}
4078344Sobrien
4178344Sobrienipsec_stop()
4278344Sobrien{
4378344Sobrien	echo "Clearing ipsec manual keys/policies."
4478344Sobrien
4578344Sobrien	# still not 100% sure if we would like to do this.
4678344Sobrien	# it is very questionable to do this during shutdown session, since
4778344Sobrien	# it can hang any of remaining IPv4/v6 session.
4878344Sobrien	#
49101085Sume	${ipsec_program} -F
50101085Sume	${ipsec_program} -FP
5178344Sobrien}
5278344Sobrien
5378344Sobrienipsec_reload()
5478344Sobrien{
5578344Sobrien	echo "Reloading ipsec manual keys/policies."
56101085Sume	${ipsec_program} -f "$ipsec_file"
5778344Sobrien}
5878344Sobrien
5978344Sobrienload_rc_config $name
6078344Sobrienrun_rc_command "$1"
61