xref: /freebsd/libexec/rc/rc.d/ipsec (revision f99f0ee14e3af81c23150a6a340259ca8a33d01a)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb#
40696600cSBjoern A. Zeeb
50696600cSBjoern A. Zeeb# PROVIDE: ipsec
60696600cSBjoern A. Zeeb# REQUIRE: FILESYSTEMS
70696600cSBjoern A. Zeeb# BEFORE:  DAEMON mountcritremote
80696600cSBjoern A. Zeeb# KEYWORD: nojailvnet
90696600cSBjoern A. Zeeb
100696600cSBjoern A. Zeeb. /etc/rc.subr
110696600cSBjoern A. Zeeb
120696600cSBjoern A. Zeebname="ipsec"
130696600cSBjoern A. Zeebdesc="Internet Protocol Security protocol"
140696600cSBjoern A. Zeebrcvar="ipsec_enable"
150696600cSBjoern A. Zeebstart_precmd="ipsec_prestart"
160696600cSBjoern A. Zeebstart_cmd="ipsec_start"
170696600cSBjoern A. Zeebstop_precmd="test -f $ipsec_file"
180696600cSBjoern A. Zeebstop_cmd="ipsec_stop"
190696600cSBjoern A. Zeebreload_cmd="ipsec_reload"
200696600cSBjoern A. Zeebextra_commands="reload"
210696600cSBjoern A. Zeebipsec_program="/sbin/setkey"
2251d97e1bSAndrey V. Elsukovrequired_modules="ipsec"
230696600cSBjoern A. Zeeb# ipsec_file is set by rc.conf
240696600cSBjoern A. Zeeb
250696600cSBjoern A. Zeebipsec_prestart()
260696600cSBjoern A. Zeeb{
270696600cSBjoern A. Zeeb	if [ ! -f "$ipsec_file" ]; then
280696600cSBjoern A. Zeeb		warn "$ipsec_file not readable; ipsec start aborted."
290696600cSBjoern A. Zeeb		stop_boot
300696600cSBjoern A. Zeeb		return 1
310696600cSBjoern A. Zeeb	fi
320696600cSBjoern A. Zeeb	return 0
330696600cSBjoern A. Zeeb}
340696600cSBjoern A. Zeeb
350696600cSBjoern A. Zeebipsec_start()
360696600cSBjoern A. Zeeb{
370696600cSBjoern A. Zeeb	echo "Installing ipsec manual keys/policies."
380696600cSBjoern A. Zeeb	${ipsec_program} -f $ipsec_file
390696600cSBjoern A. Zeeb}
400696600cSBjoern A. Zeeb
410696600cSBjoern A. Zeebipsec_stop()
420696600cSBjoern A. Zeeb{
430696600cSBjoern A. Zeeb	echo "Clearing ipsec manual keys/policies."
440696600cSBjoern A. Zeeb
450696600cSBjoern A. Zeeb	# Still not 100% sure if we would like to do this.
460696600cSBjoern A. Zeeb	# It is very questionable to do this during shutdown session
470696600cSBjoern A. Zeeb	# since it can hang any of the remaining IPv4/v6 sessions.
480696600cSBjoern A. Zeeb	#
490696600cSBjoern A. Zeeb	${ipsec_program} -F
500696600cSBjoern A. Zeeb	${ipsec_program} -FP
510696600cSBjoern A. Zeeb}
520696600cSBjoern A. Zeeb
530696600cSBjoern A. Zeebipsec_reload()
540696600cSBjoern A. Zeeb{
550696600cSBjoern A. Zeeb	echo "Reloading ipsec manual keys/policies."
560696600cSBjoern A. Zeeb	${ipsec_program} -f "$ipsec_file"
570696600cSBjoern A. Zeeb}
580696600cSBjoern A. Zeeb
590696600cSBjoern A. Zeebload_rc_config $name
60*f99f0ee1SAlexander Leidinger
61*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: config setting
62*f99f0ee1SAlexander Leidingeripsec_svcj="NO"
63*f99f0ee1SAlexander Leidinger
640696600cSBjoern A. Zeebrun_rc_command "$1"
65