diff options
-rw-r--r-- | doc/net.example.BSD.in | 4 | ||||
-rw-r--r-- | doc/net.example.Linux.in | 4 | ||||
-rw-r--r-- | init.d/net.lo.in | 12 |
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 |