summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-freifunk-policyrouting/luasrc
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2014-12-03 15:17:05 +0100
committerJo-Philipp Wich <jow@openwrt.org>2015-01-08 16:26:20 +0100
commit1bb4822dca6113f73e3bc89e2acf15935e6f8e92 (patch)
tree35e16f100466e4e00657199b38bb3d87d52bf73f /applications/luci-app-freifunk-policyrouting/luasrc
parent9edd0e46c3f880727738ce8ca6ff1c8b85f99ef4 (diff)
Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names * Make each LuCI module its own standalone package * Deploy a shared luci.mk which is used by each module Makefile Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'applications/luci-app-freifunk-policyrouting/luasrc')
-rw-r--r--applications/luci-app-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua18
-rw-r--r--applications/luci-app-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua43
2 files changed, 61 insertions, 0 deletions
diff --git a/applications/luci-app-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua b/applications/luci-app-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua
new file mode 100644
index 000000000..ec087d93a
--- /dev/null
+++ b/applications/luci-app-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua
@@ -0,0 +1,18 @@
+--[[
+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()
+ entry({"admin", "freifunk", "policyrouting"}, cbi("freifunk/policyrouting"),
+ _("Policy Routing"), 60)
+end
diff --git a/applications/luci-app-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua b/applications/luci-app-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua
new file mode 100644
index 000000000..f7f046771
--- /dev/null
+++ b/applications/luci-app-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua
@@ -0,0 +1,43 @@
+--[[
+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
+]]--
+
+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 fallback = c:option(Flag, "fallback", translate("Fallback to mesh"),
+ translate("If your own gateway is not available then fallback to the mesh default gateway."))
+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