ipsec revision 169668
1#!/bin/sh
2#
3# $NetBSD: ipsec,v 1.7 2002/03/22 04:33:58 thorpej Exp $
4# $FreeBSD: head/etc/rc.d/ipsec 169668 2007-05-18 12:04:41Z mtm $
5#
6
7# PROVIDE: ipsec
8# REQUIRE: FILESYSTEMS
9# BEFORE:  DAEMON mountcritremote
10# KEYWORD: nojail
11
12. /etc/rc.subr
13
14name="ipsec"
15rcvar=`set_rcvar`
16start_precmd="ipsec_prestart"
17start_cmd="ipsec_start"
18stop_precmd="test -f $ipsec_file"
19stop_cmd="ipsec_stop"
20reload_cmd="ipsec_reload"
21extra_commands="reload"
22ipsec_program="/sbin/setkey"
23# ipsec_file is set by rc.conf
24
25ipsec_prestart()
26{
27	if [ ! -f "$ipsec_file" ]; then
28		warn "$ipsec_file not readable; ipsec start aborted."
29		stop_boot
30		return 1
31	fi
32	return 0
33}
34
35ipsec_start()
36{
37	echo "Installing ipsec manual keys/policies."
38	${ipsec_program} -f $ipsec_file
39}
40
41ipsec_stop()
42{
43	echo "Clearing ipsec manual keys/policies."
44
45	# still not 100% sure if we would like to do this.
46	# it is very questionable to do this during shutdown session, since
47	# it can hang any of remaining IPv4/v6 session.
48	#
49	${ipsec_program} -F
50	${ipsec_program} -FP
51}
52
53ipsec_reload()
54{
55	echo "Reloading ipsec manual keys/policies."
56	${ipsec_program} -f "$ipsec_file"
57}
58
59load_rc_config $name
60run_rc_command "$1"
61