* Fixed haserl-lua Makefile

* Fixed a bug in CBI that occured when target UCI is empty
* Added frontend for port forwarding / firewall pages
This commit is contained in:
Steven Barth 2008-03-31 22:24:32 +00:00
parent 746fdf6b47
commit 184f13334f
10 changed files with 69 additions and 5 deletions

View file

@ -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/ffluci $(1)/www/cgi-bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/index.cgi $(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 $(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/ffluci.postinst $(1)/CONTROL/postinst
$(CP) -a ./ipkg/conffiles $(1)/CONTROL/conffiles $(CP) -a ./ipkg/conffiles $(1)/CONTROL/conffiles
endef endef

View file

@ -1 +1,2 @@
/etc/config/luci /etc/config/luci
/etc/config/luci_fw

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=haserl-lua PKG_NAME:=haserl
PKG_VERSION:=0.9.23 PKG_VERSION:=0.9.23
PKG_RELEASE:=1 PKG_RELEASE:=1

2
contrib/uci/luci_fw Normal file
View file

@ -0,0 +1,2 @@

View file

@ -111,6 +111,9 @@ function Map.__init__(self, config, ...)
if not self.ucidata then if not self.ucidata then
error("Unable to read UCI data: " .. self.config) error("Unable to read UCI data: " .. self.config)
else else
if not self.ucidata[self.config] then
self.ucidata[self.config] = {}
end
self.ucidata = self.ucidata[self.config] self.ucidata = self.ucidata[self.config]
end end
end end

View file

@ -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

View file

@ -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

View file

@ -17,6 +17,8 @@ act("vlan", "Switch")
act("ifaces", "Schnittstellen") act("ifaces", "Schnittstellen")
act("ptp", "PPPoE / PPTP") act("ptp", "PPPoE / PPTP")
act("routes", "Statische Routen") act("routes", "Statische Routen")
act("portfw", "Portweiterleitung")
act("firewall", "Firewall")
add("admin", "wifi", "Drahtlos", 40) add("admin", "wifi", "Drahtlos", 40)
act("devices", "Geräte") act("devices", "Geräte")

View file

@ -157,7 +157,7 @@ end
function Session._uci3(self, cmd) function Session._uci3(self, cmd)
local res = ffluci.sys.execl(self.ucicmd .. " 2>&1 " .. 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] return nil, res[1]
end end