diff options
Diffstat (limited to 'applications/luci-freifunk-policyrouting')
3 files changed, 67 insertions, 0 deletions
diff --git a/applications/luci-freifunk-policyrouting/Makefile b/applications/luci-freifunk-policyrouting/Makefile new file mode 100644 index 000000000..3efa329b7 --- /dev/null +++ b/applications/luci-freifunk-policyrouting/Makefile @@ -0,0 +1,4 @@ +PO = freifunk-policyrouting + +include ../../build/config.mk +include ../../build/module.mk diff --git a/applications/luci-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua b/applications/luci-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua new file mode 100644 index 000000000..32c9c0ba4 --- /dev/null +++ b/applications/luci-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua @@ -0,0 +1,23 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2011 Manuel Munz <freifunk at somakoma de> + +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 +]]-- + + +module "luci.controller.freifunk.policy-routing" + +function index() + require("luci.i18n").loadc("freifunk-policyrouting") + local i18n = luci.i18n.translate + + entry({"admin", "freifunk", "policyrouting"}, cbi("freifunk/policyrouting"), i18n("Policy Routing"), 60) +end + + diff --git a/applications/luci-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua b/applications/luci-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua new file mode 100644 index 000000000..b3cac9a10 --- /dev/null +++ b/applications/luci-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua @@ -0,0 +1,40 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2011 Manuel Munz <freifunk at somakoma de> + +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 +]]-- + +luci.i18n.loadc("freifunk") +local uci = require "luci.model.uci".cursor() + +m = Map("freifunk-policyrouting", translate("Policy Routing"), translate("These pages can be used to setup policy routing for certain firewall zones. ".. + "This is useful if you need to use your own internet connection for yourself but you don't want to share it with others (thats why it can also be ".. + "called 'Ego Mode'). Your own traffic is then sent via your internet connection while traffic originating from the mesh will use another gateway in the mesh. ")) +m:chain("network") + +c = m:section(NamedSection, "pr", "settings", "") + +local pr = c:option(Flag, "enable", translate("Enable Policy Routing")) +pr.rmempty = false + +local strict = c:option(Flag, "strict", translate("Strict Filtering"), translate("If no default route is received from the mesh network then traffic which belongs to ".. + "the selected firewall zones is routed via your internet connection as a fallback. If you do not want this and instead block that traffic then you should ".. + "select this option.")) +strict.rmempty = false + +local zones = c:option(MultiValue, "zones", translate("Firewall zones"), translate("All traffic from interfaces belonging to these zones will be sent via ".. + "a gateway in the mesh network.")) +uci:foreach("firewall", "zone", function(section) + local name = section.name + if not (name == "wan") then + zones:value(name) + end +end) + +return m |