ipsec revision 98184
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 98184 2002-06-13 22:14:37Z gordon $
5#
6
7# PROVIDE: ipsec
8# REQUIRE: root beforenetlkm mountcritlocal tty
9# BEFORE:  DAEMON
10# KEYWORD: FreeBSD NetBSD
11
12#	it does not really require beforenetlkm.
13
14. /etc/rc.subr
15
16name="ipsec"
17rcvar=`set_rcvar`
18# This will be overiden from rc.conf on FreeBSD.
19ipsec_file="/etc/ipsec.conf"
20start_precmd="ipsec_prestart"
21start_cmd="ipsec_start"
22stop_precmd="test -f /etc/ipsec.conf"
23stop_cmd="ipsec_stop"
24reload_cmd="ipsec_reload"
25extra_commands="reload"
26
27ipsec_prestart()
28{
29	if [ ! -f "$ipsec_file" ]; then
30		warn "$ipsec_file not readable; ipsec start aborted."
31			#
32			# If booting directly to multiuser, send SIGTERM to
33			# the parent (/etc/rc) to abort the boot
34			#
35		if [ "$autoboot" = yes ]; then
36			echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
37			kill -TERM $$
38			exit 1
39		fi
40		return 1
41	fi
42	return 0
43}
44
45ipsec_start()
46{
47	echo "Installing ipsec manual keys/policies."
48	/sbin/setkey -f $ipsec_file
49}
50
51ipsec_stop()
52{
53	echo "Clearing ipsec manual keys/policies."
54
55	# still not 100% sure if we would like to do this.
56	# it is very questionable to do this during shutdown session, since
57	# it can hang any of remaining IPv4/v6 session.
58	#
59	/sbin/setkey -F
60	/sbin/setkey -FP
61}
62
63ipsec_reload()
64{
65	echo "Reloading ipsec manual keys/policies."
66	/sbin/setkey -F
67	/sbin/setkey -FP
68	/sbin/setkey -f "$ipsec_file"
69}
70
71load_rc_config $name
72run_rc_command "$1"
73