diff options
author | Steven Barth <steven@midlink.org> | 2008-05-14 19:39:09 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-05-14 19:39:09 +0000 |
commit | a39bf5f58d880f17b10376b64670f54768354b65 (patch) | |
tree | 366b351c9d8accfb55fb97ea81893146dfad6c1a /modules/freifunk | |
parent | ba971df2afce4dbded063b887bd521e702be55e4 (diff) |
* modules/freifunk: Updated wizard to be more generic
Diffstat (limited to 'modules/freifunk')
-rw-r--r-- | modules/freifunk/root/etc/config/freifunk | 4 | ||||
-rw-r--r-- | modules/freifunk/src/controller/admin/index/wizard.lua | 83 |
2 files changed, 75 insertions, 12 deletions
diff --git a/modules/freifunk/root/etc/config/freifunk b/modules/freifunk/root/etc/config/freifunk index 01b83f2c7b..889b79787c 100644 --- a/modules/freifunk/root/etc/config/freifunk +++ b/modules/freifunk/root/etc/config/freifunk @@ -19,7 +19,3 @@ config public community option dhcp 10.0.0.0 option dhcpmask 255.255.255.0 option dns "88.198.178.18 141.54.1.1 212.204.49.83 208.67.220.220 208.67.222.222" - -config settings routing - option internal 0 - option internet 0 diff --git a/modules/freifunk/src/controller/admin/index/wizard.lua b/modules/freifunk/src/controller/admin/index/wizard.lua index c7064bb1b7..efca38d21b 100644 --- a/modules/freifunk/src/controller/admin/index/wizard.lua +++ b/modules/freifunk/src/controller/admin/index/wizard.lua @@ -30,6 +30,7 @@ function configure_freifunk() uci:t_load("luci_splash") uci:t_load("olsr") uci:t_load("wireless") + uci:t_load("luci_fw") -- Configure FF-Interface @@ -43,16 +44,59 @@ function configure_freifunk() uci:t_set("network", "ff", "netmask", uci:t_get("freifunk", "community", "mask")) uci:t_set("network", "ff", "dns", uci:t_get("freifunk", "community", "dns")) - -- Enable internal routing - uci:t_set("freifunk", "routing", "internal", "1") + -- Reset Routing + local routing = uci:t_sections("luci_fw") + if routing then + for k, v in pairs(routing) do + if v[".type"] == "routing" and (v.iface == "ff" or v.oface == "ff") then + uci:t_del("luci_fw", k) + end + end - -- Enable internet routing - if ffluci.http.formvalue("shareinet") then - uci:t_set("freifunk", "routing", "internet", "1") - else - uci:t_set("freifunk", "routing", "internet", "0") + local int = uci:t_add("luci_fw", "routing") + uci:t_set("luci_fw", int, "iface", "ff") + uci:t_set("luci_fw", int, "oface", "ff") + uci:t_set("luci_fw", int, "fwd", "1") end + -- Routing from Internal + local iface = ffluci.http.formvalue("frominternal") + if iface and iface ~= "" then + local routing = uci:t_sections("luci_fw") + if routing then + for k, v in pairs(routing) do + if v[".type"] == "routing" and (v.iface == iface and v.oface == "ff") then + uci:t_del("luci_fw", k) + end + end + + local int = uci:t_add("luci_fw", "routing") + uci:t_set("luci_fw", int, "iface", iface) + uci:t_set("luci_fw", int, "oface", "ff") + uci:t_set("luci_fw", int, "fwd", "1") + uci:t_set("luci_fw", int, "nat", "1") + end + end + + -- Routing to External + local iface = ffluci.http.formvalue("toexternal") + if iface and iface ~= "" then + local routing = uci:t_sections("luci_fw") + if routing then + for k, v in pairs(routing) do + if v[".type"] == "routing" and (v.oface == iface and v.iface == "ff") then + uci:t_del("luci_fw", k) + end + end + + local int = uci:t_add("luci_fw", "routing") + uci:t_set("luci_fw", int, "iface", "ff") + uci:t_set("luci_fw", int, "oface", iface) + uci:t_set("luci_fw", int, "fwd", "1") + uci:t_set("luci_fw", int, "nat", "1") + end + end + -- Configure DHCP if ffluci.http.formvalue("dhcp") then local dhcpnet = uci:t_get("freifunk", "community", "dhcp"):match("^([0-9]+)") @@ -91,7 +135,29 @@ function configure_freifunk() local sk = uci:t_add("luci_splash", "iface") uci:t_set("luci_splash", sk, "network", "ffdhcp") - end + end + + local routing = uci:t_sections("luci_fw") + if routing then + for k, v in pairs(routing) do + if v[".type"] == "routing" and (v.iface == "ffdhcp" or v.oface == "ffdhcp") then + uci:t_del("luci_fw", k) + end + end + + local int = uci:t_add("luci_fw", "routing") + uci:t_set("luci_fw", int, "iface", "ffdhcp") + uci:t_set("luci_fw", int, "oface", "ff") + uci:t_set("luci_fw", int, "nat", "1") + + local iface = ffluci.http.formvalue("toexternal") + if iface and iface ~= "" then + local int = uci:t_add("luci_fw", "routing") + uci:t_set("luci_fw", int, "iface", "ffdhcp") + uci:t_set("luci_fw", int, "oface", iface) + uci:t_set("luci_fw", int, "nat", "1") + end + end end -- Configure OLSR @@ -166,6 +232,7 @@ function configure_freifunk() uci:t_save("luci_splash") uci:t_save("olsr") uci:t_save("wireless") + uci:t_save("luci_fw") ffluci.http.redirect(ffluci.dispatcher.build_url("admin", "uci", "changes")) end
\ No newline at end of file |