summaryrefslogtreecommitdiff
path: root/init.d/net.lo.in
diff options
context:
space:
mode:
Diffstat (limited to 'init.d/net.lo.in')
-rw-r--r--init.d/net.lo.in12
1 files changed, 9 insertions, 3 deletions
diff --git a/init.d/net.lo.in b/init.d/net.lo.in
index 822e3f5..8f4ea9b 100644
--- a/init.d/net.lo.in
+++ b/init.d/net.lo.in
@@ -476,7 +476,7 @@ interface_down()
start()
{
- local IFACE=${RC_SVCNAME#*.} oneworked=false module=
+ local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=
local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
local metric=0
@@ -563,6 +563,7 @@ start()
else
eval config=\$fallback_${config_index}
if [ -n "${config}" ]; then
+ fallback=true
eoutdent
ewarn "Trying fallback configuration ${config}"
eindent
@@ -585,8 +586,13 @@ start()
return 1
fi
- local hidefirstroute=false first=true
- local routes="$(_get_array "routes_${IFVAR}")"
+ local hidefirstroute=false first=true routes=
+ if ${fallback}; then
+ routes="$(_get_array "fallback_routes_${IFVAR}")"
+ fi
+ if [ -z "${routes}" ]; then
+ routes="$(_get_array "routes_${IFVAR}")"
+ fi
if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
if [ "${config_0}" != "null" ]; then
routes="127.0.0.0/8 via 127.0.0.1