summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-04-30 18:23:56 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-04-30 18:23:56 +0000
commitb905c102f041ea88e7a5e1b25bd089953bf345f7 (patch)
treeabc20073b1a7cb7ca114804ccbd3e506131913e4 /package
parent5bae60a02473c39fb49a4e9b7e2bd0b2f581e3ce (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')
-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 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}"
}