New application luci-upnp for luci-full and luci-mini
authorSteven Barth <steven@midlink.org>
Thu, 17 Jul 2008 18:11:15 +0000 (18:11 +0000)
committerSteven Barth <steven@midlink.org>
Thu, 17 Jul 2008 18:11:15 +0000 (18:11 +0000)
applications/luci-upnp/Makefile [new file with mode: 0644]
applications/luci-upnp/luasrc/controller/upnp.lua [new file with mode: 0644]
applications/luci-upnp/luasrc/i18n/upnp.de.lua [new file with mode: 0644]
applications/luci-upnp/luasrc/i18n/upnp.en.lua [new file with mode: 0644]
applications/luci-upnp/luasrc/model/cbi/upnp/upnp.lua [new file with mode: 0644]
applications/luci-upnp/luasrc/model/cbi/upnp/upnpmini.lua [new file with mode: 0644]
contrib/package/luci/Makefile
libs/web/root/etc/config/luci

diff --git a/applications/luci-upnp/Makefile b/applications/luci-upnp/Makefile
new file mode 100644 (file)
index 0000000..81a96f6
--- /dev/null
@@ -0,0 +1,2 @@
+include ../../build/config.mk
+include ../../build/module.mk
\ No newline at end of file
diff --git a/applications/luci-upnp/luasrc/controller/upnp.lua b/applications/luci-upnp/luasrc/controller/upnp.lua
new file mode 100644 (file)
index 0000000..fe93b9f
--- /dev/null
@@ -0,0 +1,30 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+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
+
+$Id$
+]]--
+module("luci.controller.upnp", package.seeall)
+
+function index()
+       if not luci.fs.isfile("/etc/config/upnpd") then
+               return
+       end
+       
+       local page = entry({"admin", "services", "upnp"}, cbi("upnp/upnp"), "UPNP")
+       page.i18n = "upnp"
+       page.dependent = true
+       
+       
+       local page = entry({"mini", "network", "upnp"}, cbi("upnp/upnpmini"), "UPNP")
+       page.i18n = "upnp"
+       page.dependent = true
+end
\ No newline at end of file
diff --git a/applications/luci-upnp/luasrc/i18n/upnp.de.lua b/applications/luci-upnp/luasrc/i18n/upnp.de.lua
new file mode 100644 (file)
index 0000000..95c1fc6
--- /dev/null
@@ -0,0 +1,6 @@
+upnpd = "Universal Plug & Play"
+upnpd_desc = "UPNP ermöglicht die automatische Konfiguration des Routers durch Clients im lokalen Netzwerk."
+upnpd_config_desc = "UPNP sollte nur wenn unbedingt nötig aktiviert werden, da es ein Sicherheitsrisiko für das Netzwerk darstellen kann."
+upnpd_config_logoutput = "Ausgabe protokollieren"
+upnpd_config_download = "Downlink"
+upnpd_config_upload = "Uplink"
\ No newline at end of file
diff --git a/applications/luci-upnp/luasrc/i18n/upnp.en.lua b/applications/luci-upnp/luasrc/i18n/upnp.en.lua
new file mode 100644 (file)
index 0000000..eb11f97
--- /dev/null
@@ -0,0 +1,6 @@
+upnpd = "Universal Plug & Play"
+upnpd_desc = "UPNP allows clients in the local network to automatically configure the router."
+upnpd_config_desc = "UPNP should only be enabled if absolutely necessary as it can result in high security risks for your network."
+upnpd_config_logoutput = "Log output"
+upnpd_config_download = "Downlink"
+upnpd_config_upload = "Uplink"
\ No newline at end of file
diff --git a/applications/luci-upnp/luasrc/model/cbi/upnp/upnp.lua b/applications/luci-upnp/luasrc/model/cbi/upnp/upnp.lua
new file mode 100644 (file)
index 0000000..79a38f7
--- /dev/null
@@ -0,0 +1,32 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+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
+
+$Id$
+]]--
+m = Map("upnpd", translate("upnpd"), translate("upnpd_desc"))
+
+s = m:section(NamedSection, "config", "upnpd", "")
+e = s:option(Flag, "enabled", translate("enable"))
+function e.write(self, section, value)
+       local cmd = (value == "1") and "enable" or "disable"
+       os.execute("/etc/init.d/miniupnpd " .. cmd)
+end
+
+function e.cfgvalue(self, section)
+       return (os.execute("/etc/init.d/miniupnpd enabled") == 0) and "1" or "0"
+end
+
+s:option(Flag, "log_output").rmempty = true
+s:option(Value, "download").rmempty = true
+s:option(Value, "upload").rmempty = true
+
+return m
\ No newline at end of file
diff --git a/applications/luci-upnp/luasrc/model/cbi/upnp/upnpmini.lua b/applications/luci-upnp/luasrc/model/cbi/upnp/upnpmini.lua
new file mode 100644 (file)
index 0000000..5923883
--- /dev/null
@@ -0,0 +1,31 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+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
+
+$Id$
+]]--
+m = Map("upnpd", translate("upnpd"), translate("upnpd_desc"))
+
+s = m:section(NamedSection, "config", "upnpd", "")
+e = s:option(Flag, "enabled", translate("enable"))
+function e.write(self, section, value)
+       local cmd = (value == "1") and "enable" or "disable"
+       os.execute("/etc/init.d/miniupnpd " .. cmd)
+end
+
+function e.cfgvalue(self, section)
+       return (os.execute("/etc/init.d/miniupnpd enabled") == 0) and "1" or "0"
+end
+
+s:option(Value, "download").rmempty = true
+s:option(Value, "upload").rmempty = true
+
+return m
\ No newline at end of file
index 8ae97fc..062e14c 100644 (file)
@@ -411,6 +411,16 @@ define Package/luci-app-statistics/install
        $(call Package/luci/install/template,$(1),applications/luci-statistics)
 endef
 
+define Package/luci-app-upnp
+  $(call Package/luci/webtemplate)
+  DEPENDS+=+luci-mod-admin-core +miniupnpd
+  TITLE:=Universal Plug & Play configuration module
+endef
+
+define Package/luci-app-upnp/install
+       $(call Package/luci/install/template,$(1),applications/luci-upnp)
+endef
+
 
 ### Server Gateway Interfaces ###
 
@@ -566,6 +576,9 @@ endif
 ifneq ($(CONFIG_PACKAGE_luci-app-statistics),)
        PKG_SELECTED_MODULES+=applications/luci-statistics
 endif
+ifneq ($(CONFIG_PACKAGE_luci-app-upnp),)
+       PKG_SELECTED_MODULES+=applications/luci-upnp
+endif
 
 ifneq ($(CONFIG_PACKAGE_luci-sgi-cgi),)
        PKG_SELECTED_MODULES+=libs/sgi-cgi
@@ -630,6 +643,7 @@ $(eval $(call BuildPackage,luci-app-olsr))
 $(eval $(call BuildPackage,luci-app-qos))
 $(eval $(call BuildPackage,luci-app-splash))
 $(eval $(call BuildPackage,luci-app-statistics))
+$(eval $(call BuildPackage,luci-app-upnp))
 
 $(eval $(call BuildPackage,luci-sgi-cgi))
 $(eval $(call BuildPackage,luci-sgi-luci))
index d85d4b4..aa35539 100644 (file)
@@ -19,7 +19,7 @@ config extern flash_keep
        option firewall "/etc/firewall.user"
 
 config event uci_oncommit
-       option network  "/etc/init.d/network restart"
+       option network  "/etc/init.d/network restart; /etc/init.d/dnsmasq restart"
        option wireless "/etc/init.d/network restart"
        option olsr     "/etc/init.d/olsrd restart"
        option dhcp     "/etc/init.d/dnsmasq restart"
@@ -31,6 +31,7 @@ config event uci_oncommit
        option luci_ethers "/etc/init.d/luci_ethers restart; /etc/init.d/dnsmasq restart"
        option luci_splash "/etc/init.d/luci_splash restart"
        option freifunk "/etc/init.d/luci_freifunk restart"
+       option upnpd "/etc/init.d/miniupnpd enabled && /etc/init.d/miniupnpd restart || /etc/init.d/miniupnpd stop"
 
 config internal languages
        option de "Deutsch"