summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpackage/base-files-network/files/lib/network/config.sh44
1 files changed, 25 insertions, 19 deletions
diff --git a/package/base-files-network/files/lib/network/config.sh b/package/base-files-network/files/lib/network/config.sh
index 5e8b05909c..8ba31a8784 100755
--- a/package/base-files-network/files/lib/network/config.sh
+++ b/package/base-files-network/files/lib/network/config.sh
@@ -48,34 +48,40 @@ find_config() {
return 1;
}
-scan_interfaces() {
- local cfgfile="${1:-network}"
- interfaces=
- config_cb() {
- case "$1" in
- interface)
- config_set "$2" auto 1
- ;;
- esac
+fixup_interface() {
local iftype ifname device proto
- config_get iftype "$CONFIG_SECTION" TYPE
+ local __cfg="$1"
+
+ config_get iftype "$__cfg" TYPE
case "$iftype" in
interface)
- append interfaces "$CONFIG_SECTION"
- config_get proto "$CONFIG_SECTION" proto
- config_get iftype "$CONFIG_SECTION" type
- config_get ifname "$CONFIG_SECTION" ifname
- config_get device "$CONFIG_SECTION" device "$ifname"
- config_set "$CONFIG_SECTION" device "$device"
+ append interfaces "$__cfg"
+ config_get proto "$__cfg" proto
+ config_get iftype "$__cfg" type
+ config_get ifname "$__cfg" ifname
+ config_get device "$__cfg" device "$ifname"
+ config_set "$__cfg" device "$device"
case "$iftype" in
bridge)
- config_set "$CONFIG_SECTION" ifnames "$device"
- config_set "$CONFIG_SECTION" ifname br-"$CONFIG_SECTION"
+ config_set "$__cfg" ifnames "$device"
+ config_set "$__cfg" ifname br-"$CONFIG_SECTION"
;;
esac
- ( type "scan_$proto" ) >/dev/null 2>/dev/null && eval "scan_$proto '$CONFIG_SECTION'"
+ ( type "scan_$proto" ) >/dev/null 2>/dev/null && eval "scan_$proto '$__cfg'"
+ ;;
+ esac
+}
+
+scan_interfaces() {
+ local cfgfile="${1:-network}"
+ interfaces=
+ config_cb() {
+ case "$1" in
+ interface)
+ config_set "$2" auto 1
;;
esac
+ fixup_interface "$CONFIG_SECTION"
}
config_load "${cfgfile}"
}