summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-03-31 22:24:32 +0000
committerSteven Barth <steven@midlink.org>2008-03-31 22:24:32 +0000
commit184f13334f470141420a189220dd3b951aac4480 (patch)
treea110745e118b4970362599e8b45272506f67f9ba
parent746fdf6b472e72cb01b0c3510cc3eb04be1237b7 (diff)
* Fixed haserl-lua Makefile
* Fixed a bug in CBI that occured when target UCI is empty * Added frontend for port forwarding / firewall pages
-rw-r--r--contrib/package/ffluci/Makefile3
-rw-r--r--contrib/package/ffluci/ipkg/conffiles3
-rw-r--r--contrib/package/haserl-lua/Makefile2
-rw-r--r--contrib/uci/luci (renamed from contrib/ffluci.uci)0
-rw-r--r--contrib/uci/luci_fw2
-rw-r--r--src/ffluci/cbi.lua3
-rw-r--r--src/ffluci/model/cbi/admin_network/firewall.lua37
-rw-r--r--src/ffluci/model/cbi/admin_network/portfw.lua18
-rw-r--r--src/ffluci/model/menu/00main.lua2
-rw-r--r--src/ffluci/model/uci.lua4
10 files changed, 69 insertions, 5 deletions
diff --git a/contrib/package/ffluci/Makefile b/contrib/package/ffluci/Makefile
index 3bf9eb596..753fe889a 100644
--- a/contrib/package/ffluci/Makefile
+++ b/contrib/package/ffluci/Makefile
@@ -44,7 +44,8 @@ define Package/ffluci/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/ffluci $(1)/www/cgi-bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/index.cgi $(1)/www/cgi-bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/index.html $(1)/www
- $(CP) $(PKG_BUILD_DIR)/contrib/ffluci.uci $(1)/etc/config/luci
+ $(CP) $(PKG_BUILD_DIR)/contrib/uci/luci $(1)/etc/config/luci
+ $(CP) $(PKG_BUILD_DIR)/contrib/uci/luci_fw $(1)/etc/config/luci_fw
$(CP) -a ./ipkg/ffluci.postinst $(1)/CONTROL/postinst
$(CP) -a ./ipkg/conffiles $(1)/CONTROL/conffiles
endef
diff --git a/contrib/package/ffluci/ipkg/conffiles b/contrib/package/ffluci/ipkg/conffiles
index 5258af4d8..098dbf904 100644
--- a/contrib/package/ffluci/ipkg/conffiles
+++ b/contrib/package/ffluci/ipkg/conffiles
@@ -1 +1,2 @@
-/etc/config/luci \ No newline at end of file
+/etc/config/luci
+/etc/config/luci_fw \ No newline at end of file
diff --git a/contrib/package/haserl-lua/Makefile b/contrib/package/haserl-lua/Makefile
index b2146334c..c531d3399 100644
--- a/contrib/package/haserl-lua/Makefile
+++ b/contrib/package/haserl-lua/Makefile
@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
-PKG_NAME:=haserl-lua
+PKG_NAME:=haserl
PKG_VERSION:=0.9.23
PKG_RELEASE:=1
diff --git a/contrib/ffluci.uci b/contrib/uci/luci
index 640faf170..640faf170 100644
--- a/contrib/ffluci.uci
+++ b/contrib/uci/luci
diff --git a/contrib/uci/luci_fw b/contrib/uci/luci_fw
new file mode 100644
index 000000000..c7dec7f2c
--- /dev/null
+++ b/contrib/uci/luci_fw
@@ -0,0 +1,2 @@
+
+ \ No newline at end of file
diff --git a/src/ffluci/cbi.lua b/src/ffluci/cbi.lua
index d89405516..5bc40499c 100644
--- a/src/ffluci/cbi.lua
+++ b/src/ffluci/cbi.lua
@@ -111,6 +111,9 @@ function Map.__init__(self, config, ...)
if not self.ucidata then
error("Unable to read UCI data: " .. self.config)
else
+ if not self.ucidata[self.config] then
+ self.ucidata[self.config] = {}
+ end
self.ucidata = self.ucidata[self.config]
end
end
diff --git a/src/ffluci/model/cbi/admin_network/firewall.lua b/src/ffluci/model/cbi/admin_network/firewall.lua
new file mode 100644
index 000000000..fc7bea61b
--- /dev/null
+++ b/src/ffluci/model/cbi/admin_network/firewall.lua
@@ -0,0 +1,37 @@
+-- ToDo: Translate, Add descriptions and help texts
+m = Map("luci_fw", "Firewall")
+
+s = m:section(TypedSection, "rule")
+s.addremove = true
+
+chain = s:option(ListValue, "chain", "Kette")
+chain:value("forward", "Forward")
+chain:value("input", "Input")
+chain:value("output", "Output")
+chain:value("prerouting", "Prerouting")
+chain:value("postrouting", "Postrouting")
+
+s:option(Value, "iface", "Eingangsschnittstelle").optional = true
+s:option(Value, "oface", "Ausgangsschnittstelle").optional = true
+s:option(Value, "proto", "Protokoll").optional = true
+s:option(Value, "source", "Quelladresse").optional = true
+s:option(Value, "destination", "Zieladresse").optional = true
+s:option(Value, "sport", "Quellports").optional = true
+s:option(Value, "dport", "Zielports").optional = true
+s:option(Value, "to", "Neues Ziel").optional = true
+
+state = s:option(MultiValue, "state", "Status")
+state.optional = true
+state.delimiter = ","
+state:value("NEW", "neu")
+state:value("ESTABLISHED", "etabliert")
+state:value("RELATED", "zugehörig")
+state:value("INVALID", "ungültig")
+
+s:option(Value, "jump", "Aktion", "ACCEPT, REJECT, DROP, MASQUERADE, DNAT, SNAT, ...").optional = true
+
+
+add = s:option(Value, "command", "Befehl")
+add.size = 50
+
+return m \ No newline at end of file
diff --git a/src/ffluci/model/cbi/admin_network/portfw.lua b/src/ffluci/model/cbi/admin_network/portfw.lua
new file mode 100644
index 000000000..6f8822a89
--- /dev/null
+++ b/src/ffluci/model/cbi/admin_network/portfw.lua
@@ -0,0 +1,18 @@
+-- ToDo: Translate, Add descriptions and help texts
+m = Map("luci_fw", "Portweiterleitung")
+
+s = m:section(TypedSection, "portfw")
+s.addremove = true
+s.anonymous = true
+
+iface = s:option(Value, "in_interface", "Externes Interface")
+
+proto = s:option(ListValue, "proto", "Protokoll")
+proto:value("tcp", "TCP")
+proto:value("udp", "UDP")
+
+dport = s:option(Value, "dport", "Externer Port", "Port[:Endport]")
+
+to = s:option(Value, "to", "Interne Adresse", "IP-Adresse[:Zielport[-Zielendport]]")
+
+return m \ No newline at end of file
diff --git a/src/ffluci/model/menu/00main.lua b/src/ffluci/model/menu/00main.lua
index 64fc36462..966c4228c 100644
--- a/src/ffluci/model/menu/00main.lua
+++ b/src/ffluci/model/menu/00main.lua
@@ -17,6 +17,8 @@ act("vlan", "Switch")
act("ifaces", "Schnittstellen")
act("ptp", "PPPoE / PPTP")
act("routes", "Statische Routen")
+act("portfw", "Portweiterleitung")
+act("firewall", "Firewall")
add("admin", "wifi", "Drahtlos", 40)
act("devices", "Geräte")
diff --git a/src/ffluci/model/uci.lua b/src/ffluci/model/uci.lua
index 94a385c7e..828659780 100644
--- a/src/ffluci/model/uci.lua
+++ b/src/ffluci/model/uci.lua
@@ -157,12 +157,12 @@ end
function Session._uci3(self, cmd)
local res = ffluci.sys.execl(self.ucicmd .. " 2>&1 " .. cmd)
- if res[1]:sub(1, ucicmd:len() + 1) == ucicmd .. ":" then
+ if res[1] and res[1]:sub(1, self.ucicmd:len()+1) == self.ucicmd..":" then
return nil, res[1]
end
table = {}
-
+
for k,line in pairs(res) do
c, s, t = line:match("^([^.]-)%.([^.]-)=(.-)$")
if c then