diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-04-30 18:23:56 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-04-30 18:23:56 +0000 |
commit | b905c102f041ea88e7a5e1b25bd089953bf345f7 (patch) | |
tree | abc20073b1a7cb7ca114804ccbd3e506131913e4 /package/base-files-network/files/lib/network | |
parent | 5bae60a02473c39fb49a4e9b7e2bd0b2f581e3ce (diff) |
base-files-network: add a fixup_interface function like with the netifd compatibility scripts - allows selective fixup of individual interface sections instead of having to do the full scan_interfaces
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31543 3c298f89-4303-0410-b956-a3cf2f4a3e73
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 5e8b05909..8ba31a878 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}" } |