Add a new staticroute init script so that .... static routes can be configured!
Fixes Gentoo #288421.
This commit is contained in:
parent
a4b03ead79
commit
baeb59cd2e
1
conf.d/.gitignore
vendored
1
conf.d/.gitignore
vendored
@ -1 +1,2 @@
|
||||
network
|
||||
staticroute
|
||||
|
@ -1,14 +1,19 @@
|
||||
DIR= ${CONFDIR}
|
||||
CONF= bootmisc fsck hostname local localmount network urandom
|
||||
CONF= bootmisc fsck hostname local localmount network staticroute urandom
|
||||
|
||||
TARGETS+= network
|
||||
CLEANFILES+= network
|
||||
TARGETS+= network staticroute
|
||||
CLEANFILES+= network staticroute
|
||||
|
||||
MK= ../mk
|
||||
include ${MK}/os.mk
|
||||
include Makefile.${OS}
|
||||
include ${MK}/scripts.mk
|
||||
|
||||
SOS?= BSD
|
||||
|
||||
network: network.in network.${OS}
|
||||
cp network.in network
|
||||
[ -e network.${OS} ] && cat network.${OS} >> network || true
|
||||
cp $@.in $@
|
||||
[ -e $@.${OS} ] && cat $@.${OS} >> $@ || true
|
||||
|
||||
staticroute: staticroute.${SOS}
|
||||
cp $@.${SOS} $@
|
||||
|
@ -1 +1,2 @@
|
||||
CONF+= consolefont dmesg hwclock keymaps modules
|
||||
SOS= Linux
|
||||
|
2
conf.d/staticroute.BSD
Normal file
2
conf.d/staticroute.BSD
Normal file
@ -0,0 +1,2 @@
|
||||
# Example static route. See route(8) for syntax.
|
||||
staticroute="net 192.168.0.0 -netmask 255.255.0.0 10.73.1.1"
|
2
conf.d/staticroute.Linux
Normal file
2
conf.d/staticroute.Linux
Normal file
@ -0,0 +1,2 @@
|
||||
# Example static route. See route(8) for syntax.
|
||||
staticroute="net 192.168.0.0 netmask 255.255.0.0 gw 10.73.1.1"
|
1
init.d/.gitignore
vendored
1
init.d/.gitignore
vendored
@ -24,6 +24,7 @@ mount-ro
|
||||
mtab
|
||||
numlock
|
||||
procfs
|
||||
staticroute
|
||||
sysfs
|
||||
devdb
|
||||
hostid
|
||||
|
@ -1,6 +1,7 @@
|
||||
DIR= ${INITDIR}
|
||||
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
|
||||
network.in root.in savecache.in swap.in swclock.in sysctl.in urandom.in
|
||||
network.in root.in savecache.in staticroute.in swap.in swclock.in \
|
||||
sysctl.in urandom.in
|
||||
BIN= ${OBJS}
|
||||
|
||||
# Build our old net foo or not
|
||||
|
73
init.d/staticroute.in
Normal file
73
init.d/staticroute.in
Normal file
@ -0,0 +1,73 @@
|
||||
#!@PREFIX@/sbin/runscript
|
||||
# Copyright (c) 2009 Roy Marples <roy@marples.name>
|
||||
# All rights reserved. Released under the 2-clause BSD license.
|
||||
|
||||
# This script was inspired by the equivalent rc.d staticroute from NetBSD.
|
||||
|
||||
description="Configures static routes."
|
||||
__nl="
|
||||
"
|
||||
|
||||
depend()
|
||||
{
|
||||
provide net
|
||||
use network
|
||||
keyword -jail -prefix -vserver
|
||||
}
|
||||
|
||||
dump_args()
|
||||
{
|
||||
if [ -s /etc/route.conf ]; then
|
||||
cat /etc/route.conf
|
||||
else
|
||||
case "$staticroute" in
|
||||
*"$__nl"*)
|
||||
echo "$staticroute"
|
||||
;;
|
||||
*)
|
||||
(
|
||||
set -o noglob
|
||||
IFS=';'; set -- $staticroute
|
||||
IFS="$__nl"; echo "$*"
|
||||
)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
do_routes()
|
||||
{
|
||||
local xtra=
|
||||
[ "$RC_UNAME" != Linux ] && xtra=-q
|
||||
|
||||
ebegin "$1 static routes"
|
||||
dump_args | while read args; do
|
||||
[ -z "$args" ] && continue
|
||||
case "$args" in
|
||||
"#"*)
|
||||
;;
|
||||
"+"*)
|
||||
[ $2 = "add" ] && eval ${args#*+}
|
||||
;;
|
||||
"-"*)
|
||||
[ $2 = "del" -o $2 = "delete" ] && eval ${args#*-}
|
||||
;;
|
||||
*)
|
||||
route $xtra $2 -$args
|
||||
;;
|
||||
esac
|
||||
done
|
||||
eend 0
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
do_routes "Adding" "add"
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
local cmd="delete"
|
||||
[ "$RC_UNAME" = Linux ] && cmd="del"
|
||||
do_routes "Deleting" "$cmd"
|
||||
}
|
Loading…
Reference in New Issue
Block a user