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