aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/net.example.BSD.in4
-rw-r--r--doc/net.example.Linux.in4
-rw-r--r--init.d/net.lo.in12
3 files changed, 15 insertions, 5 deletions
diff --git a/doc/net.example.BSD.in b/doc/net.example.BSD.in
index 287c644a..2329fa22 100644
--- a/doc/net.example.BSD.in
+++ b/doc/net.example.BSD.in
@@ -67,10 +67,12 @@
# If a specified module fails (like dhcp - see below), you can specify a
# fallback like so
#fallback_eth0="192.168.0.2 netmask 255.255.255.0"
-#fallback_route_eth0="default via 192.168.0.1"
+#fallback_routes_eth0="default via 192.168.0.1"
# NOTE: fallback entry must match the entry location in config_eth0
# As such you can only have one fallback route.
+# Also, if you do not set a fallback_routes entry for an interface, the
+# routes entry will be used if that is set.
# Some users may need to alter the MTU - here's how
#mtu_eth0="1500"
diff --git a/doc/net.example.Linux.in b/doc/net.example.Linux.in
index 424c6775..709e201b 100644
--- a/doc/net.example.Linux.in
+++ b/doc/net.example.Linux.in
@@ -94,10 +94,12 @@
# If a specified module fails (like dhcp - see below), you can specify a
# fallback like so
#fallback_eth0="192.168.0.2/24"
-#fallback_route_eth0="default via 192.168.0.1"
+#fallback_routes_eth0="default via 192.168.0.1"
# NOTE: fallback entry must match the entry location in config_eth0
# As such you can only have one fallback route.
+# Also, if you do not set a fallback_routes entry for an interface, the
+# routes entry will be used if that is set.
# Some users may need to alter the MTU - here's how
#mtu_eth0="1500"
diff --git a/init.d/net.lo.in b/init.d/net.lo.in
index 822e3f58..8f4ea9ba 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