瀏覽代碼

2016-02-16 Technik/Routing/Labornetz/OS/FreeBSD/etc/rc.d/tincd (FIB je tincd per rc.conf konfigurierbar machen)

Ignore-this: 31ea612a2e8909510cd4da7589e393f4
altlast 9 年之前
父節點
當前提交
7f74b0cb0b
共有 1 個文件被更改,包括 109 次插入0 次删除
  1. 109 0
      Technik/Routing/Labornetz/OS/FreeBSD/etc/rc.d/tincd

+ 109 - 0
Technik/Routing/Labornetz/OS/FreeBSD/etc/rc.d/tincd

@@ -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