FF-Wizard: Set interface protocol to static, don't add the zone to network if it...
[project/luci.git] / applications / luci-ffwizard-leipzig / luasrc / tools / ffwizard.lua
index d679cc9..60a240b 100644 (file)
@@ -18,6 +18,7 @@ local uci = require "luci.model.uci"
 local util = require "luci.util"
 local table = require "table"
 
 local util = require "luci.util"
 local table = require "table"
 
+local type = type
 
 module "luci.tools.ffwizard"
 
 
 module "luci.tools.ffwizard"
 
@@ -39,11 +40,14 @@ function network_remove_interface(iface)
        local aliases = {iface}
        cursor:foreach("network", "alias", 
                function(section)
        local aliases = {iface}
        cursor:foreach("network", "alias", 
                function(section)
-                       table.insert(aliases, section[".name"])
+                       if section.interface == iface then
+                               table.insert(aliases, section[".name"])
+                       end
                end)
        
        -- Delete Aliases and Routes
                end)
        
        -- Delete Aliases and Routes
-       cursor:delete_all("network", nil, {interface=iface})
+       cursor:delete_all("network", "route", {interface=iface})
+       cursor:delete_all("network", "alias", {interface=iface})
        
        -- Delete DHCP sections
        cursor:delete_all("dhcp", "dhcp",
        
        -- Delete DHCP sections
        cursor:delete_all("dhcp", "dhcp",
@@ -84,7 +88,8 @@ function firewall_zone_add_interface(name, interface)
        local cursor = uci.cursor()
        local zone = firewall_find_zone(name)
        local net = cursor:get("firewall", zone, "network")
        local cursor = uci.cursor()
        local zone = firewall_find_zone(name)
        local net = cursor:get("firewall", zone, "network")
-       cursor:set("firewall", zone, "network", (net or name .. " ") .. interface)
+       local old = net or (cursor:get("network", name) and name)
+       cursor:set("firewall", zone, "network", (old and old .. " " or "") .. interface)
        cursor:save("firewall")
 end
 
        cursor:save("firewall")
 end