]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/ipsec
MFC r1.13:
[FreeBSD/FreeBSD.git] / etc / rc.d / ipsec
1 #!/bin/sh
2 #
3 # $NetBSD: ipsec,v 1.7 2002/03/22 04:33:58 thorpej Exp $
4 # $FreeBSD$
5 #
6
7 # PROVIDE: ipsec
8 # REQUIRE: root mountcritlocal
9 # BEFORE:  DAEMON mountcritremote
10 # KEYWORD: nojail
11
12 #       it does not really require beforenetlkm.
13
14 . /etc/rc.subr
15
16 name="ipsec"
17 rcvar=`set_rcvar`
18 start_precmd="ipsec_prestart"
19 start_cmd="ipsec_start"
20 stop_precmd="test -f /etc/ipsec.conf"
21 stop_cmd="ipsec_stop"
22 reload_cmd="ipsec_reload"
23 extra_commands="reload"
24 ipsec_program="/sbin/setkey"
25 # ipsec_file is set by rc.conf
26
27 ipsec_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
45 ipsec_start()
46 {
47         echo "Installing ipsec manual keys/policies."
48         ${ipsec_program} -f $ipsec_file
49 }
50
51 ipsec_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         ${ipsec_program} -F
60         ${ipsec_program} -FP
61 }
62
63 ipsec_reload()
64 {
65         echo "Reloading ipsec manual keys/policies."
66         ${ipsec_program} -F
67         ${ipsec_program} -FP
68         ${ipsec_program} -f "$ipsec_file"
69 }
70
71 load_rc_config $name
72 run_rc_command "$1"