applications/ffwizard: Massive changes to the ffwizard to make it more generic. Also...
[project/luci.git] / applications / luci-ffwizard-leipzig / luasrc / tools / ffwizard.lua
diff --git a/applications/luci-ffwizard-leipzig/luasrc/tools/ffwizard.lua b/applications/luci-ffwizard-leipzig/luasrc/tools/ffwizard.lua
deleted file mode 100644 (file)
index 217cd44..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
---[[
-LuCI - Lua Configuration Interface
-
-Copyright 2008 Steven Barth <steven@midlink.org>
-Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
-]]--
-
-local uci = require "luci.model.uci"
-local util = require "luci.util"
-local table = require "table"
-
-local type = type
-
-module "luci.tools.ffwizard"
-
--- Deletes all references of a wifi device
-function wifi_delete_ifaces(device)
-       local cursor = uci.cursor()
-       cursor:delete_all("wireless", "wifi-iface", {device=device})
-       cursor:save("wireless")
-end
-
--- Deletes a network interface and all occurences of it in firewall zones and dhcp
-function network_remove_interface(iface)
-       local cursor = uci.cursor()
-
-       if not cursor:delete("network", iface) then
-               return false
-       end
-
-       local aliases = {iface}
-       cursor:foreach("network", "alias",
-               function(section)
-                       if section.interface == iface then
-                               table.insert(aliases, section[".name"])
-                       end
-               end)
-
-       -- Delete Aliases and Routes
-       cursor:delete_all("network", "route", {interface=iface})
-       cursor:delete_all("network", "alias", {interface=iface})
-
-       -- Delete DHCP sections
-       cursor:delete_all("dhcp", "dhcp",
-                function(section)
-                       return util.contains(aliases, section.interface)
-                end)
-
-       -- Remove OLSR sections
-       cursor:delete_all("olsrd", "Interface", {Interface=iface})
-
-       -- Remove Splash sections
-       cursor:delete_all("luci-splash", "iface", {network=iface})
-
-       cursor:save("network")
-       cursor:save("olsr")
-       cursor:save("dhcp")
-       cursor:save("luci-splash")
-end
-
--- Creates a firewall zone
-function firewall_create_zone(zone, input, output, forward, masq)
-       local cursor = uci.cursor()
-       if not firewall_find_zone(zone) then
-               local stat = cursor:section("firewall", "zone", nil, {
-                       input = input,
-                       output = output,
-                       forward = forward,
-                       masq = masq and "1",
-                       name = zone
-               })
-               cursor:save("firewall")
-               return stat
-       end
-end
-
--- Adds interface to zone, creates zone on-demand
-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 old = net or (cursor:get("network", name) and name)
-       cursor:set("firewall", zone, "network", (old and old .. " " or "") .. interface)
-       cursor:save("firewall")
-end
-
--- Removes interface from zone
-function firewall_zone_remove_interface(name, interface)
-       local cursor = uci.cursor()
-       local zone = firewall_find_zone(name)
-       if zone then
-               local net = cursor:get("firewall", zone, "network")
-               local new = remove_list_entry(net, interface)
-               if new then
-                       if #new > 0 then
-                               cursor:set("firewall", zone, "network", new)
-                       else
-                               cursor:delete("firewall", zone, "network")
-                       end
-                       cursor:save("firewall")
-               end
-       end
-end
-
-
--- Finds the firewall zone with given name
-function firewall_find_zone(name)
-       local find
-
-       uci.cursor():foreach("firewall", "zone",
-               function (section)
-                       if section.name == name then
-                               find = section[".name"]
-                       end
-               end)
-
-       return find
-end
-
-
-
--- Helpers --
-
--- Removes a listentry, handles real and pseduo lists transparently
-function remove_list_entry(value, entry)
-       if type(value) == "nil" then
-               return nil
-       end
-
-       local result = type(value) == "table" and value or util.split(value, " ")
-       local key = util.contains(result, entry)
-
-       while key do
-               table.remove(result, key)
-               key = util.contains(result, entry)
-       end
-
-       result = type(value) == "table" and result or table.concat(result, " ")
-       return result ~= value and result
-end