aboutsummaryrefslogtreecommitdiff
path: root/init.d
diff options
context:
space:
mode:
Diffstat (limited to 'init.d')
-rw-r--r--init.d/network.in21
-rw-r--r--init.d/staticroute.in11
2 files changed, 30 insertions, 2 deletions
diff --git a/init.d/network.in b/init.d/network.in
index 3beba1ca..259fb31c 100644
--- a/init.d/network.in
+++ b/init.d/network.in
@@ -137,6 +137,7 @@ routeflush()
if [ "$RC_UNAME" = Linux ]; then
if [ -x /sbin/ip ]; then
ip route flush scope global
+ ip route delete default 2>/dev/null
else
# Sadly we also delete some link routes, but
# this cannot be helped
@@ -156,6 +157,8 @@ routeflush()
esac
route del $flags $dest $netmask $xtra
done
+ # Erase any default dev eth0 routes
+ route del default 2>/dev/null
fi
else
route -qn flush
@@ -263,6 +266,24 @@ start()
eend $?
fi
+ if [ -n "$defaultroute6" ]; then
+ ebegin "Setting default route $defaultroute6"
+ if [ "$RC_UNAME" = Linux ]; then
+ routecmd="route -A inet6 add"
+ if [ "${defaultroute6#dev }" = "$defaultroute6" ]; then
+ routecmd="$routecmd gw"
+ fi
+ else
+ routecmd="route -inet6 add"
+ fi
+ $routecmd default $defaultroute6
+ eend $?
+ elif [ -n "$defaultiproute6" ]; then
+ ebegin "Setting default route $defaultiproute6"
+ ip route add default via $defaultiproute6
+ eend $?
+ fi
+
return 0
}
diff --git a/init.d/staticroute.in b/init.d/staticroute.in
index 9f38b562..9995d37f 100644
--- a/init.d/staticroute.in
+++ b/init.d/staticroute.in
@@ -50,7 +50,7 @@ dump_args()
do_routes()
{
- local xtra=
+ local xtra= family=
[ "$RC_UNAME" != Linux ] && xtra=-q
ebegin "$1 static routes"
@@ -74,7 +74,14 @@ do_routes()
ip route $2 $args
;;
*)
- route $xtra $2 -$args
+ # Linux route does cannot work it out ...
+ if [ "$RC_UNAME" = Linux ]; then
+ case "$args" in
+ *:*) family="-A inet6";;
+ *) family=;;
+ esac
+ fi
+ route $famly $xtra $2 -$args
;;
esac
veend $?