Add support for iproute2 in staticroute.

Fixes #208.
This commit is contained in:
Roy Marples 2009-12-05 20:05:43 +00:00
parent ca752a5a2d
commit 22e2a4f0a1
2 changed files with 41 additions and 15 deletions

View File

@ -1,2 +1,5 @@
# Example static route. See route(8) for syntax.
#staticroute="net 192.168.0.0 netmask 255.255.0.0 gw 10.73.1.1"
# Example static route using iproute2. See ip(8) for syntax.
#staticiproute="192.168.0.0/24 via 10.73.1.1"

View File

@ -15,24 +15,36 @@ depend()
keyword -jail -prefix -vserver
}
pre_flight_checks()
{
route=route
[ -s /etc/route.conf ] && return 0
if [ -n "$staticiproute" ]; then
route="ip route"
staticroute="$staticiproute"
fi
}
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
return $?
fi
case "$staticroute" in
*"$__nl"*)
echo "$staticroute"
;;
*)
(
set -o noglob
IFS=';'; set -- $staticroute
IFS="$__nl"; echo "$*"
)
;;
esac
}
do_routes()
@ -41,6 +53,8 @@ do_routes()
[ "$RC_UNAME" != Linux ] && xtra=-q
ebegin "$1 static routes"
eindent
pre_flight_checks
dump_args | while read args; do
[ -z "$args" ] && continue
case "$args" in
@ -53,10 +67,19 @@ do_routes()
[ $2 = "del" -o $2 = "delete" ] && eval ${args#*-}
;;
*)
route $xtra $2 -$args
;;
veinfo "$args"
case "$route" in
"ip route")
ip route $2 $args
;;
*)
route $xtra $2 -$args
;;
esac
veend $?
esac
done
eoutdent
eend 0
}