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,11 +15,24 @@ 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
return $?
fi
case "$staticroute" in
*"$__nl"*)
echo "$staticroute"
@ -32,7 +45,6 @@ dump_args()
)
;;
esac
fi
}
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
@ -52,11 +66,20 @@ do_routes()
"-"*)
[ $2 = "del" -o $2 = "delete" ] && eval ${args#*-}
;;
*)
veinfo "$args"
case "$route" in
"ip route")
ip route $2 $args
;;
*)
route $xtra $2 -$args
;;
esac
veend $?
esac
done
eoutdent
eend 0
}