diff options
Diffstat (limited to 'net/amnezia-tools/files/amnezia.in')
-rw-r--r-- | net/amnezia-tools/files/amnezia.in | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/net/amnezia-tools/files/amnezia.in b/net/amnezia-tools/files/amnezia.in new file mode 100644 index 000000000000..98010c013bdb --- /dev/null +++ b/net/amnezia-tools/files/amnezia.in @@ -0,0 +1,82 @@ +#!/bin/sh + +# PROVIDE: amnezia +# REQUIRE: NETWORKING +# KEYWORD: shutdown +# +# amnezia_enable (bool): Set to "YES" to enable amnezia. +# (default: "NO") +# +# amnezia_interfaces (str): List of interfaces to bring up/down +# on start/stop. (eg: "amn0 amn1") +# (default: "") +# amnezia_env (str): Environment variables for the userspace +# implementation. (eg: "LOG_LEVEL=debug") +# +# amnezia_kmod (str): Kernel module to load. +# (default: "if_amn", "" - no module) +# +# amnezia_confdirs (str): Directory to store the configuration files. +# (default: "%%ETCDIR%%") + +. /etc/rc.subr + +name=amnezia +rcvar=amnezia_enable +extra_commands="reload status" + +start_cmd="${name}_start" +stop_cmd="${name}_stop" +reload_cmd="${name}_reload" +status_cmd="${name}_status" + +amnezia_start() +{ + kmod=${amnezia_kmod:-if_amn} + ${amnezia_env:+eval export $amnezia_env} + [ -n "${kmod}" ] && kldstat -q -n ${kmod} || kldload -n ${kmod} + + for interface in ${amnezia_interfaces}; do + %%PREFIX%%/bin/awg-quick up ${interface} + done +} + +amnezia_stop() +{ + for interface in ${amnezia_interfaces}; do + %%PREFIX%%/bin/awg-quick down ${interface} + done +} + +amnezia_reload() +{ + ${amnezia_env:+eval export $amnezia_env} + + for interface in ${amnezia_interfaces}; do + %%PREFIX%%/bin/awg-quick reload ${interface} + done +} + +amnezia_status() +{ + ${amnezia_env:+eval export $amnezia_env} + amnezia_status="0" + + for interface in ${amnezia_interfaces}; do + %%PREFIX%%/bin/awg show ${interface} || amnezia_status="1" + done + + return ${amnezia_status} +} + +load_rc_config $name + +: ${amnezia_enable="NO"} +: ${amnezia_interfaces=""} +: ${amnezia_env=""} +: ${amnezia_kmod="if_amn"} +: ${amnezia_confdirs="%%ETCDIR%%"} + +${amnezia_confdirs:+eval export AWG_QUICK_CONFIG_SEARCH_PATHS="$amnezia_confdirs"} + +run_rc_command "$1" |