NetBSD/etc/rc.d/staticroute
gendalia 7591311640 Add the ability for staticroute to evaluate lines from /etc/route.conf
as shell script fragments, add example to the route.conf man page of
evaluating variables.

Remove route.conf man page statement that staticroute is enabled in
rc.conf since that's incorrect.

Wrap the staticroute while in parens, per <apb> & <christos>, and
quote all the arguments for the evals.
2012-05-02 15:57:15 +00:00

53 lines
892 B
Bash
Executable File

#!/bin/sh
#
# $NetBSD: staticroute,v 1.6 2012/05/02 15:57:15 gendalia Exp $
#
# PROVIDE: staticroute
# REQUIRE: network
# BEFORE: NETWORKING
# See the route.conf(5) manual page for details.
$_rc_subr_loaded . /etc/rc.subr
name="staticroute"
start_cmd="staticroute_doit Adding add"
stop_cmd="staticroute_doit Deleting delete"
staticroute_doit() {
retval=0
if [ -s /etc/route.conf ]; then
echo "$1 static routes."
( while read args; do
[ -z "$args" ] && continue
case "$args" in
"#"*)
;;
"+"*)
if [ $2 = "add" ]; then
eval "${args#*+}" || retval=1
fi
;;
"-"*)
if [ $2 = "delete" ]; then
eval "${args#*-}" || retval=1
fi
;;
"!"*)
eval "${args#*!}" || retval=1
;;
*)
eval "route -q $2 -$args" || retval=1
;;
esac
done < /etc/route.conf )
fi
return $retval
}
load_rc_config $name
run_rc_command "$1"