From 22e2a4f0a156c566f0c460c2229a19dbff4e0553 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Sat, 5 Dec 2009 20:05:43 +0000 Subject: Add support for iproute2 in staticroute. Fixes #208. --- init.d/staticroute.in | 53 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 15 deletions(-) (limited to 'init.d') diff --git a/init.d/staticroute.in b/init.d/staticroute.in index 0b49ca9..8aea55c 100644 --- a/init.d/staticroute.in +++ b/init.d/staticroute.in @@ -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 } -- cgit v1.2.3