base-files: config_generate: properly handle multiple switches
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 25 Nov 2015 15:43:33 +0000 (15:43 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 25 Nov 2015 15:43:33 +0000 (15:43 +0000)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47646 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/bin/config_generate

index 40d7047..29fec8e 100755 (executable)
@@ -172,6 +172,16 @@ calculate_switch_vlans() {
                eval device="\$dev$((vlan_off++ % n_cpu))"
                [ $n_vlan -gt $n_cpu ] && device="$device.$vlan_off"
 
+               # quirk: append ifnames for subsequent switches
+               case "$switch" in switch[1-9])
+                       local prev_devs="$(uci -q get "network.$role.ifname")"
+                       if echo "$prev_devs" | grep -wq "$device"; then
+                               device="$prev_devs"
+                       else
+                               device="$prev_devs $device"
+                       fi
+               ;; esac
+
                uci -q batch <<-EOF
                        delete network.$role
                        set network.$role='interface'