|
@@ -0,0 +1,109 @@
|
|
|
+#!/bin/sh
|
|
|
+
|
|
|
+# $FreeBSD: head/security/tinc/files/tincd.in 406095 2016-01-14 06:02:05Z dinoex $
|
|
|
+#
|
|
|
+# PROVIDE: tincd
|
|
|
+# REQUIRE: ipfilter FILESYSTEMS sysctl netif
|
|
|
+# BEFORE: SERVERS routing
|
|
|
+# KEYWORD: nojail
|
|
|
+#
|
|
|
+# Define these tincd_* variables in one of these files:
|
|
|
+# /etc/rc.conf
|
|
|
+# /etc/rc.conf.local
|
|
|
+# /etc/rc.conf.d/tincd
|
|
|
+#
|
|
|
+# tincd_enable (bool): Set to "NO" by default.
|
|
|
+# Set it to "YES" to enable tincd.
|
|
|
+# tincd_cfg (str): Set to "" by default.
|
|
|
+# Set it to NETNAMEs to use (ex.: "vpn1 vpn2").
|
|
|
+# tincd_flags (str): Set to "" by default.
|
|
|
+# Set it to flags to use (ex.: "-d 1 --logfile").
|
|
|
+#
|
|
|
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
|
|
|
+
|
|
|
+tincd_enable=${tincd_enable:-"NO"}
|
|
|
+
|
|
|
+. /etc/rc.subr
|
|
|
+
|
|
|
+name="tincd"
|
|
|
+rcvar="tincd_enable"
|
|
|
+command="/usr/local/sbin/tincd"
|
|
|
+start_cmd="tincd_start"
|
|
|
+stop_cmd="tincd_stop"
|
|
|
+reload_cmd="tincd_reload"
|
|
|
+extra_commands="reload"
|
|
|
+procname=${command:-tincd}
|
|
|
+ldconfig_command="/sbin/ldconfig"
|
|
|
+
|
|
|
+load_rc_config $name
|
|
|
+
|
|
|
+tincd_start()
|
|
|
+{
|
|
|
+ local setfib
|
|
|
+ setfib=/usr/sbin/setfib
|
|
|
+ ${ldconfig_command} -elf -m /usr/local/lib
|
|
|
+ if test -z "${tincd_cfg}"
|
|
|
+ then
|
|
|
+ eval tincd_fib=\$${name}_fib
|
|
|
+ if [ -n "${tincd_fib}" ]
|
|
|
+ then
|
|
|
+ procname="${command}"
|
|
|
+ echo "Starting tincd"
|
|
|
+ $setfib -F ${tincd_fib} $command ${command_args}
|
|
|
+ else
|
|
|
+ echo "Starting tincd"
|
|
|
+ $command ${command_args}
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ for cfg in ${tincd_cfg}
|
|
|
+ do
|
|
|
+ eval tincd_fib=\$${name}_${cfg}_fib
|
|
|
+ command_args="-n $cfg"
|
|
|
+ if [ -n "${tincd_fib}" ]
|
|
|
+ then
|
|
|
+ procname="${command}"
|
|
|
+ echo "Starting tincd"
|
|
|
+ $setfib -F ${tincd_fib} $command ${command_args}
|
|
|
+ else
|
|
|
+ echo "Starting tincd for: ${cfg}"
|
|
|
+ $command ${command_args}
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ fi
|
|
|
+# code deliberately borrowed from /etc/rc.d/netif
|
|
|
+ if [ -f /etc/rc.d/ipfilter ] ; then
|
|
|
+ # Resync ipfilter
|
|
|
+ /etc/rc.d/ipfilter quietresync
|
|
|
+ fi
|
|
|
+}
|
|
|
+tincd_stop()
|
|
|
+{
|
|
|
+ if test -z "${tincd_cfg}"
|
|
|
+ then
|
|
|
+ echo "Stopping tincd"
|
|
|
+ $command -k
|
|
|
+ else
|
|
|
+ for cfg in $tincd_cfg
|
|
|
+ do
|
|
|
+ echo "Stopping tincd for: ${cfg}"
|
|
|
+ $command -n $cfg -k
|
|
|
+ done
|
|
|
+ fi
|
|
|
+}
|
|
|
+tincd_reload()
|
|
|
+{
|
|
|
+ if test -z "${tincd_cfg}"
|
|
|
+ then
|
|
|
+ echo "Sending HUP to tincd"
|
|
|
+ $command --kill=HUP
|
|
|
+ else
|
|
|
+ for cfg in $tincd_cfg
|
|
|
+ do
|
|
|
+ echo "Sending HUP to tincd for: ${cfg}"
|
|
|
+ $command -n $cfg --kill=HUP
|
|
|
+ done
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+run_rc_command "$1"
|
|
|
+# eof
|