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
|
network
|
||||||
|
staticroute
|
||||||
|
@ -1,14 +1,19 @@
|
|||||||
DIR= ${CONFDIR}
|
DIR= ${CONFDIR}
|
||||||
CONF= bootmisc fsck hostname local localmount network urandom
|
CONF= bootmisc fsck hostname local localmount network staticroute urandom
|
||||||
|
|
||||||
TARGETS+= network
|
TARGETS+= network staticroute
|
||||||
CLEANFILES+= network
|
CLEANFILES+= network staticroute
|
||||||
|
|
||||||
MK= ../mk
|
MK= ../mk
|
||||||
include ${MK}/os.mk
|
include ${MK}/os.mk
|
||||||
include Makefile.${OS}
|
include Makefile.${OS}
|
||||||
include ${MK}/scripts.mk
|
include ${MK}/scripts.mk
|
||||||
|
|
||||||
|
SOS?= BSD
|
||||||
|
|
||||||
network: network.in network.${OS}
|
network: network.in network.${OS}
|
||||||
cp network.in network
|
cp $@.in $@
|
||||||
[ -e network.${OS} ] && cat network.${OS} >> network || true
|
[ -e $@.${OS} ] && cat $@.${OS} >> $@ || true
|
||||||
|
|
||||||
|
staticroute: staticroute.${SOS}
|
||||||
|
cp $@.${SOS} $@
|
||||||
|
@ -1 +1,2 @@
|
|||||||
CONF+= consolefont dmesg hwclock keymaps modules
|
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
|
mtab
|
||||||
numlock
|
numlock
|
||||||
procfs
|
procfs
|
||||||
|
staticroute
|
||||||
sysfs
|
sysfs
|
||||||
devdb
|
devdb
|
||||||
hostid
|
hostid
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
DIR= ${INITDIR}
|
DIR= ${INITDIR}
|
||||||
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
|
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}
|
BIN= ${OBJS}
|
||||||
|
|
||||||
# Build our old net foo or not
|
# 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