modules/admin-full: when deleting wifi-ifaces, remove all empty leftover networks...
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 26 Jun 2012 21:49:27 +0000 (21:49 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 26 Jun 2012 21:49:27 +0000 (21:49 +0000)
modules/admin-full/luasrc/controller/admin/network.lua

index 759ad68a284fd60e4e771bfb9d00cce014a352ab..85d7b18dd5539ae93f704526d1416f7653e92b30 100644 (file)
@@ -43,13 +43,13 @@ function index()
 
 
                local has_wifi = false
-               
+
                uci:foreach("wireless", "wifi-device",
                        function(s)
                                has_wifi = true
                                return false
                        end)
-               
+
                if has_wifi then
                        page = entry({"admin", "network", "wireless_join"}, call("wifi_join"), nil)
                        page.leaf = true
@@ -214,14 +214,17 @@ function wifi_delete(network)
        local wnet = ntm:get_wifinet(network)
        if wnet then
                local dev = wnet:get_device()
-               local net = wnet:get_network()
+               local nets = wnet:get_networks()
                if dev then
                        luci.sys.call("env -i /sbin/wifi down %q >/dev/null" % dev:name())
                        ntm:del_wifinet(network)
                        ntm:commit("wireless")
-                       if net and net:is_empty() then
-                               ntm:del_network(net:name())
-                               ntm:commit("network")
+                       local _, net
+                       for _, net in ipairs(nets) do
+                               if net:is_empty() then
+                                       ntm:del_network(net:name())
+                                       ntm:commit("network")
+                               end
                        end
                        luci.sys.call("env -i /sbin/wifi up %q >/dev/null" % dev:name())
                end