diff options
-rw-r--r-- | contrib/package/ffluci/Makefile | 3 | ||||
-rw-r--r-- | contrib/package/ffluci/ipkg/conffiles | 3 | ||||
-rw-r--r-- | contrib/package/haserl-lua/Makefile | 2 | ||||
-rw-r--r-- | contrib/uci/luci (renamed from contrib/ffluci.uci) | 0 | ||||
-rw-r--r-- | contrib/uci/luci_fw | 2 | ||||
-rw-r--r-- | src/ffluci/cbi.lua | 3 | ||||
-rw-r--r-- | src/ffluci/model/cbi/admin_network/firewall.lua | 37 | ||||
-rw-r--r-- | src/ffluci/model/cbi/admin_network/portfw.lua | 18 | ||||
-rw-r--r-- | src/ffluci/model/menu/00main.lua | 2 | ||||
-rw-r--r-- | src/ffluci/model/uci.lua | 4 |
10 files changed, 69 insertions, 5 deletions
diff --git a/contrib/package/ffluci/Makefile b/contrib/package/ffluci/Makefile index 3bf9eb5966..753fe889a6 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 5258af4d86..098dbf9042 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 b2146334c6..c531d3399a 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 640faf1703..640faf1703 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 0000000000..c7dec7f2c5 --- /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 d894055168..5bc40499c8 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 0000000000..fc7bea61bc --- /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 0000000000..6f8822a89a --- /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 64fc36462d..966c4228ce 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 94a385c7e1..8286597807 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 |