aboutsummaryrefslogtreecommitdiff
path: root/sh
diff options
context:
space:
mode:
Diffstat (limited to 'sh')
-rwxr-xr-xsh/net.sh25
1 files changed, 14 insertions, 11 deletions
diff --git a/sh/net.sh b/sh/net.sh
index 31e2bc84..93a04025 100755
--- a/sh/net.sh
+++ b/sh/net.sh
@@ -400,16 +400,6 @@ _load_config() {
local config="$(_get_array "config_${IFVAR}")"
local fallback="$(_get_array fallback_${IFVAR})"
- if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
- [ "${config}" != "null" ] && config="127.0.0.1/8
-${config}"
- else
- if [ -z "${config}" ]; then
- ewarn "No configuration specified; defaulting to DHCP"
- config="dhcp"
- fi
- fi
-
config_index=0
local IFS="$__IFS"
set -- ${config}
@@ -427,9 +417,22 @@ ${config}"
esac
fi
+ # Ensure that loopback has the correct address
+ if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
+ if [ "$1" != "null" ]; then
+ config_0="127.0.0.1/8"
+ config_index=1
+ fi
+ else
+ if [ -z "$1" ]; then
+ ewarn "No configuration specified; defaulting to DHCP"
+ config="dhcp"
+ fi
+ fi
+
+
# We store our config in an array like vars
# so modules can influence it
- config_index=0
for cmd; do
eval config_${config_index}="'${cmd}'"
config_index=$((${config_index} + 1))