base-files-network: add a fixup_interface function like with the netifd compatibility...
authorFelix Fietkau <nbd@openwrt.org>
Mon, 30 Apr 2012 18:23:56 +0000 (18:23 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 30 Apr 2012 18:23:56 +0000 (18:23 +0000)
SVN-Revision: 31543

package/base-files-network/files/lib/network/config.sh

index 5e8b05909ccfb0d13178ec6c882b9a028095e52f..8ba31a8784906db8eaf10776145499c08b9f84af 100755 (executable)
@@ -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}"
 }