summaryrefslogtreecommitdiff
path: root/xi/lib/services/ipv4-static-route
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2022-03-29 23:36:22 +0100
committerdavidovski <david@davidovski.xyz>2022-03-29 23:36:22 +0100
commitdf88860947686a5e6507fc5d60ff33eac1158c6b (patch)
treed1dc7f2f003b08afb6d45f7170d7a0dd353060d3 /xi/lib/services/ipv4-static-route
parent33d239ecb3d66db2b005afbe68a7029c3f2d2ee0 (diff)
using sysvinit system bootscriptsHEADmaster
Diffstat (limited to 'xi/lib/services/ipv4-static-route')
-rwxr-xr-xxi/lib/services/ipv4-static-route98
1 files changed, 98 insertions, 0 deletions
diff --git a/xi/lib/services/ipv4-static-route b/xi/lib/services/ipv4-static-route
new file mode 100755
index 0000000..4db3a5d
--- /dev/null
+++ b/xi/lib/services/ipv4-static-route
@@ -0,0 +1,98 @@
+#!/bin/sh
+########################################################################
+# Begin /lib/services/ipv4-static-route
+#
+# Description : IPV4 Static Route Script
+#
+# Authors : Kevin P. Fleming - kpfleming@linuxfromscratch.org
+# DJ Lucas - dj@linuxfromscratch.org
+# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
+#
+# Version : LFS 7.0
+#
+########################################################################
+
+. /lib/lsb/init-functions
+. ${IFCONFIG}
+
+case "${TYPE}" in
+ ("" | "network")
+ need_ip=1
+ need_gateway=1
+ ;;
+
+ ("default")
+ need_gateway=1
+ args="${args} default"
+ desc="default"
+ ;;
+
+ ("host")
+ need_ip=1
+ ;;
+
+ ("unreachable")
+ need_ip=1
+ args="${args} unreachable"
+ desc="unreachable "
+ ;;
+
+ (*)
+ log_failure_msg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue."
+ exit 1
+ ;;
+esac
+
+if [ -n "${GATEWAY}" ]; then
+ MSG="The GATEWAY variable cannot be set in ${IFCONFIG} for static routes.\n"
+ log_failure_msg "$MSG Use STATIC_GATEWAY only, cannot continue"
+ exit 1
+fi
+
+if [ -n "${need_ip}" ]; then
+ if [ -z "${IP}" ]; then
+ log_failure_msg "IP variable missing from ${IFCONFIG}, cannot continue."
+ exit 1
+ fi
+
+ if [ -z "${PREFIX}" ]; then
+ log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue."
+ exit 1
+ fi
+
+ args="${args} ${IP}/${PREFIX}"
+ desc="${desc}${IP}/${PREFIX}"
+fi
+
+if [ -n "${need_gateway}" ]; then
+ if [ -z "${STATIC_GATEWAY}" ]; then
+ log_failure_msg "STATIC_GATEWAY variable missing from ${IFCONFIG}, cannot continue."
+ exit 1
+ fi
+ args="${args} via ${STATIC_GATEWAY}"
+fi
+
+if [ -n "${SOURCE}" ]; then
+ args="${args} src ${SOURCE}"
+fi
+
+case "${2}" in
+ up)
+ log_info_msg "Adding '${desc}' route to the ${1} interface..."
+ ip route add ${args} dev ${1}
+ evaluate_retval
+ ;;
+
+ down)
+ log_info_msg "Removing '${desc}' route from the ${1} interface..."
+ ip route del ${args} dev ${1}
+ evaluate_retval
+ ;;
+
+ *)
+ echo "Usage: ${0} [interface] {up|down}"
+ exit 1
+ ;;
+esac
+
+# End /lib/services/ipv4-static-route