diff options
Diffstat (limited to 'package/base-files-network/files/lib/network')
-rwxr-xr-x | package/base-files-network/files/lib/network/config.sh | 44 |
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}" } |