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