summaryrefslogtreecommitdiffhomepage
path: root/applications
diff options
context:
space:
mode:
Diffstat (limited to 'applications')
-rw-r--r--applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua9
-rw-r--r--applications/luci-app-mjpg-streamer/luasrc/model/cbi/mjpg-streamer.lua10
-rw-r--r--applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po166
-rw-r--r--applications/luci-app-multiwan/Makefile4
-rw-r--r--applications/luci-app-ocserv/luasrc/controller/ocserv.lua2
-rw-r--r--applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua2
-rw-r--r--applications/luci-app-olsr/Makefile2
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua2
-rw-r--r--applications/luci-app-shadowsocks-libev/Makefile14
-rw-r--r--applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua12
-rw-r--r--applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua156
-rw-r--r--applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot80
-rw-r--r--applications/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po91
-rw-r--r--applications/luci-app-shadowsocks-libev/root/etc/uci-defaults/luci-shadowsocks-libev11
-rw-r--r--applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua3
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/entropy.lua14
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool.lua6
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/conntrack.lua4
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpu.lua19
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/entropy.lua19
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/memory.lua2
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/ping.lua2
-rw-r--r--applications/luci-app-statistics/luasrc/view/admin_statistics/index.htm7
-rw-r--r--applications/luci-app-statistics/root/etc/config/luci_statistics296
-rwxr-xr-xapplications/luci-app-statistics/root/etc/init.d/luci_statistics10
-rwxr-xr-xapplications/luci-app-statistics/root/etc/uci-defaults/luci-statistics20
-rwxr-xr-xapplications/luci-app-statistics/root/usr/bin/stat-genconfig6
-rwxr-xr-xapplications/luci-app-upnp/root/etc/uci-defaults/luci-upnp9
-rw-r--r--applications/luci-app-vnstat/luasrc/view/vnstat.htm2
29 files changed, 774 insertions, 206 deletions
diff --git a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
index 3eb95ebb57..46b3744403 100644
--- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
+++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
@@ -76,6 +76,15 @@ function name.write(self, section, value)
}
end
+function name.validate(self, value)
+ -- fw3 defines 14 as the maximum length of zone name
+ if #value > 14 then
+ return nil, translate("Zone name is too long")
+ else
+ return value
+ end
+end
+
p = {
s:taboption("general", ListValue, "input", translate("Input")),
s:taboption("general", ListValue, "output", translate("Output")),
diff --git a/applications/luci-app-mjpg-streamer/luasrc/model/cbi/mjpg-streamer.lua b/applications/luci-app-mjpg-streamer/luasrc/model/cbi/mjpg-streamer.lua
index 0e1c8bf9b6..d89ab27c29 100644
--- a/applications/luci-app-mjpg-streamer/luasrc/model/cbi/mjpg-streamer.lua
+++ b/applications/luci-app-mjpg-streamer/luasrc/model/cbi/mjpg-streamer.lua
@@ -5,19 +5,19 @@ m = Map("mjpg-streamer", "MJPG-streamer", translate("mjpg streamer is a streamin
--- General settings ---
-section_gen = m:section(TypedSection, "mjpg-streamer", "General")
+section_gen = m:section(TypedSection, "mjpg-streamer", translate("General"))
section_gen.addremove=false
section_gen.anonymous=true
-enabled = section_gen:option(Flag, "enabled", "Enabled", "Enable MJPG-streamer")
+enabled = section_gen:option(Flag, "enabled", translate("Enabled"), translate("Enable MJPG-streamer"))
-input = section_gen:option(ListValue, "input", "Input plugin")
+input = section_gen:option(ListValue, "input", translate("Input plugin"))
input:depends("enabled", "1")
input:value("uvc", "UVC")
---input:value("file", "File")
input.optional = false
-output = section_gen:option(ListValue, "output", "Output plugin")
+output = section_gen:option(ListValue, "output", translate("Output plugin"))
output:depends("enabled", "1")
output:value("http", "HTTP")
output:value("file", "File")
@@ -26,7 +26,7 @@ output = section_gen:option(ListValue, "output", "Output plugin")
--- Plugin settings ---
-s = m:section(TypedSection, "mjpg-streamer", "Plugin settings")
+s = m:section(TypedSection, "mjpg-streamer", translate("Plugin settings"))
s.addremove=false
s.anonymous=true
diff --git a/applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po
new file mode 100644
index 0000000000..3ad9a4a53b
--- /dev/null
+++ b/applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po
@@ -0,0 +1,166 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: luci-app-mjpg-streamer\n"
+"POT-Creation-Date: 2015-06-11 21:11+0100\n"
+"PO-Revision-Date: 2015-06-11 21:11+0100\n"
+"Last-Translator: maz-1 <ohmygod19993 at gmail dotcom>\n"
+"Language-Team: \n"
+"Language: zh-cn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+
+msgid "Enabled"
+msgstr "启用"
+
+msgid "Enable MJPG-streamer"
+msgstr "启用MJPG-streamer"
+
+msgid "General"
+msgstr "一般设置"
+
+msgid "Plugin settings"
+msgstr "插件设置"
+
+msgid "Input plugin"
+msgstr "输入插件"
+
+msgid "Output plugin"
+msgstr "输出插件"
+
+msgid "Allow ringbuffer to exceed limit by this amount"
+msgstr "允许环形缓冲区最多超过这个数值"
+
+msgid "Ask for username and password on connect"
+msgstr "连接时询问用户名和密码"
+
+msgid "Authentication required"
+msgstr "需要验证"
+
+msgid "Auto"
+msgstr "自动"
+
+msgid "Automatic disabling of MJPEG mode"
+msgstr "自动禁用MJPEG模式"
+
+msgid "Blink"
+msgstr "闪烁"
+
+msgid "Check to save the stream to an mjpeg file"
+msgstr "勾选以保存视频流至一个mjpeg文件"
+
+msgid "Command to run"
+msgstr "运行的命令"
+
+msgid "Device"
+msgstr "设备"
+
+msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgstr "不要初始化Linux-UVC驱动的dynctrls"
+
+msgid "Don't initalize dynctrls"
+msgstr "不要初始化dynctrls"
+
+msgid "Drop frames smaller then this limit"
+msgstr "丢弃小于该尺寸限制的帧"
+
+msgid "Enable YUYV format"
+msgstr "启用YUYV格式"
+
+msgid "Exceed"
+msgstr "超出"
+
+msgid ""
+"Execute command after saving picture. Mjpg-streamer parse the filename as "
+"first parameter to your script."
+msgstr "保存图片后执行命令。文件名将作为第一个参数传递给命令。"
+
+msgid "File input"
+msgstr "文件输入"
+
+msgid "File output"
+msgstr "文件输出"
+
+msgid "Folder"
+msgstr "文件夹"
+
+msgid "Folder that contains webpages"
+msgstr "保存网页的文件夹"
+
+msgid "Frames per second"
+msgstr "帧每秒"
+
+msgid "HTTP output"
+msgstr "HTTP输出"
+
+msgid "Interval between saving pictures"
+msgstr "图片保存时间间隔"
+
+msgid "JPEG compression quality"
+msgstr "JPEG压缩品质"
+
+msgid "Led control"
+msgstr "LED控制"
+
+msgid "MJPG-streamer"
+msgstr "MJPG-streamer"
+
+msgid "Max. number of pictures to hold"
+msgstr "保存的图片数量上限"
+
+msgid "Mjpeg output"
+msgstr "Mjpeg输出"
+
+msgid "Off"
+msgstr "关"
+
+msgid "On"
+msgstr "开"
+
+msgid "Password"
+msgstr "密码"
+
+msgid "Port"
+msgstr "端口"
+
+msgid "Resolution"
+msgstr "分辨率"
+
+msgid "Ring buffer size"
+msgstr "环形缓冲区大小"
+
+msgid "Set folder to save pictures"
+msgstr "图片保存位置"
+
+msgid "Set the inteval in millisecond"
+msgstr "设置时间间隔(毫秒)"
+
+msgid ""
+"Set the minimum size if the webcam produces small-sized garbage frames. May "
+"happen under low light conditions"
+msgstr "设置无用帧的最小尺寸。当光照不足时可能出现无用帧。"
+
+msgid ""
+"Set the quality in percent. This setting activates YUYV format, disables "
+"MJPEG"
+msgstr "设置品质(百分比)。此设置会开启YUYV格式输出,关闭MJPEG输出。"
+
+msgid "TCP port for this HTTP server"
+msgstr "HTTP服务监听的TCP端口"
+
+msgid "UVC input"
+msgstr "UVC输入"
+
+msgid "Username"
+msgstr "用户名"
+
+msgid "WWW folder"
+msgstr "WWW文件夹"
+
+msgid ""
+"mjpg streamer is a streaming application for Linux-UVC compatible webcams"
+msgstr "mjpg streamer是一个视频流程序,用于兼容Linux-UVC的摄像头。"
diff --git a/applications/luci-app-multiwan/Makefile b/applications/luci-app-multiwan/Makefile
index 20fba89b0d..c5b731abbe 100644
--- a/applications/luci-app-multiwan/Makefile
+++ b/applications/luci-app-multiwan/Makefile
@@ -6,8 +6,8 @@
include $(TOPDIR)/rules.mk
-LUCI_TITLE:=LuCI Support for the OpenWrt MultiWAN agent
-LUCI_DEPENDS:=+multiwan
+LUCI_TITLE:=LuCI Support for the OpenWrt MultiWAN agent (obsoleted by mwan3)
+LUCI_DEPENDS:=+multiwan @BROKEN
include ../../luci.mk
diff --git a/applications/luci-app-ocserv/luasrc/controller/ocserv.lua b/applications/luci-app-ocserv/luasrc/controller/ocserv.lua
index 91bddc73dd..dbeaaf8524 100644
--- a/applications/luci-app-ocserv/luasrc/controller/ocserv.lua
+++ b/applications/luci-app-ocserv/luasrc/controller/ocserv.lua
@@ -44,7 +44,7 @@ function ocserv_status()
if not ln then break end
local id, user, group, vpn_ip, ip, device, time, cipher, status =
- ln:match("^%s*(%d+)%s+([-_%w]+)%s+([%.%*-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%(%)%:%.-_%w]+)%s+([%:%.-_%w]+).*")
+ ln:match("^%s*(%d+)%s+([-_%w]+)%s+([%(%)%.%*-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%(%)%:%.-_%w]+)%s+([%:%.-_%w]+).*")
if id then
fwd[#fwd+1] = {
id = id,
diff --git a/applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua b/applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua
index c4be1818f2..0fa997c8b3 100644
--- a/applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua
+++ b/applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua
@@ -47,7 +47,7 @@ if fd then local ln
if not ln then break end
local id, user, group, vpn_ip, ip, device, time, cipher, status =
- ln:match("^%s*(%d+)%s+([-_%w]+)%s+([%.%*-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%(%)%:%.-_%w]+)%s+([%:%.-_%w]+).*")
+ ln:match("^%s*(%d+)%s+([-_%w]+)%s+([%(%)%.%*-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%:%.-_%w]+)%s+([%(%)%:%.-_%w]+)%s+([%:%.-_%w]+).*")
if id then
table.insert(lusers, {id, user, group, vpn_ip, ip, device, time, cipher, status})
end
diff --git a/applications/luci-app-olsr/Makefile b/applications/luci-app-olsr/Makefile
index f30c242d53..93815a55e2 100644
--- a/applications/luci-app-olsr/Makefile
+++ b/applications/luci-app-olsr/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=OLSR configuration and status module
-LUCI_DEPENDS:=+olsrd +olsrd-mod-jsoninfo +luci-lib-luaneightbl
+LUCI_DEPENDS:=+olsrd +olsrd-mod-jsoninfo +luci-lib-luaneightbl +luci-lib-json
include ../../luci.mk
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
index 7e39dad2eb..fa1530026a 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
@@ -48,7 +48,7 @@ local knownParams = {
{ Flag, "client_disconnect", 0, translate("Run script cmd on client disconnection") },
{ Value, "learn_address", "/usr/bin/ovpn-learnaddress", translate("Executed in server mode whenever an IPv4 address/route or MAC address is added to OpenVPN's internal routing table") },
{ Value, "auth_user_pass_verify", "/usr/bin/ovpn-userpass via-env", translate("Executed in server mode on new client connections, when the client is still untrusted") },
- { ListValue, "script_security", { 0, 1, 2, 3 }, translate("Policy level over usage of external programs and scripts"), {mode="server" } },
+ { ListValue, "script_security", { 0, 1, 2, 3 }, translate("Policy level over usage of external programs and scripts") },
} },
{ "Networking", {
diff --git a/applications/luci-app-shadowsocks-libev/Makefile b/applications/luci-app-shadowsocks-libev/Makefile
new file mode 100644
index 0000000000..848a5c8317
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/Makefile
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI Support for Shadowsocks-libev
+LUCI_DEPENDS:=
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua
new file mode 100644
index 0000000000..ae968168f1
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua
@@ -0,0 +1,12 @@
+-- Copyright 2015 Jian Chang <aa65535@live.com>
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.shadowsocks-libev", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/shadowsocks-libev") then
+ return
+ end
+
+ entry({"admin", "services", "shadowsocks-libev"}, cbi("shadowsocks-libev"), _("ShadowSocks-libev"), 74).dependent = true
+end
diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua
new file mode 100644
index 0000000000..76435e2f14
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev.lua
@@ -0,0 +1,156 @@
+-- Copyright 2015 Jian Chang <aa65535@live.com>
+-- Licensed to the public under the Apache License 2.0.
+
+local m, s, o, e, a
+
+if luci.sys.call("pidof ss-redir >/dev/null") == 0 then
+ m = Map("shadowsocks-libev", translate("ShadowSocks-libev"), translate("ShadowSocks-libev is running"))
+else
+ m = Map("shadowsocks-libev", translate("ShadowSocks-libev"), translate("ShadowSocks-libev is not running"))
+end
+
+e = {
+ "table",
+ "rc4",
+ "rc4-md5",
+ "aes-128-cfb",
+ "aes-192-cfb",
+ "aes-256-cfb",
+ "bf-cfb",
+ "camellia-128-cfb",
+ "camellia-192-cfb",
+ "camellia-256-cfb",
+ "cast5-cfb",
+ "des-cfb",
+ "idea-cfb",
+ "rc2-cfb",
+ "seed-cfb",
+ "salsa20",
+ "chacha20",
+}
+
+-- Global Setting
+s = m:section(TypedSection, "shadowsocks-libev", translate("Global Setting"))
+s.anonymous = true
+
+o = s:option(Flag, "enable", translate("Enable"))
+o.default = 1
+o.rmempty = false
+
+o = s:option(Value, "server", translate("Server Address"))
+o.datatype = "ipaddr"
+o.rmempty = false
+
+o = s:option(Value, "server_port", translate("Server Port"))
+o.datatype = "port"
+o.rmempty = false
+
+o = s:option(Value, "local_port", translate("Local Port"))
+o.datatype = "port"
+o.default = 1080
+o.rmempty = false
+
+o = s:option(Value, "timeout", translate("Connection Timeout"))
+o.datatype = "uinteger"
+o.default = 60
+o.rmempty = false
+
+o = s:option(Value, "password", translate("Password"))
+o.password = true
+o.rmempty = false
+
+o = s:option(ListValue, "encrypt_method", translate("Encrypt Method"))
+for i,v in ipairs(e) do
+ o:value(v)
+end
+o.rmempty = false
+
+o = s:option(Value, "ignore_list", translate("Ignore List"))
+o:value("/dev/null", translate("Disabled"))
+o.default = "/dev/null"
+o.rmempty = false
+
+-- UDP Relay
+s = m:section(TypedSection, "shadowsocks-libev", translate("UDP Relay"))
+s.anonymous = true
+
+o = s:option(ListValue, "udp_mode", translate("Relay Mode"))
+o:value("0", translate("Disabled"))
+o:value("1", translate("Enabled"))
+o:value("2", translate("Custom"))
+o.default = 0
+o.rmempty = false
+
+o = s:option(Value, "udp_server", translate("Server Address"))
+o.datatype = "ipaddr"
+o:depends("udp_mode", 2)
+
+o = s:option(Value, "udp_server_port", translate("Server Port"))
+o.datatype = "port"
+o:depends("udp_mode", 2)
+
+o = s:option(Value, "udp_local_port", translate("Local Port"))
+o.datatype = "port"
+o.default = 1081
+o:depends("udp_mode", 2)
+
+o = s:option(Value, "udp_timeout", translate("Connection Timeout"))
+o.datatype = "uinteger"
+o.default = 60
+o:depends("udp_mode", 2)
+
+o = s:option(Value, "udp_password", translate("Password"))
+o.password = true
+o:depends("udp_mode", 2)
+
+o = s:option(ListValue, "udp_encrypt_method", translate("Encrypt Method"))
+for i,v in ipairs(e) do
+ o:value(v)
+end
+o:depends("udp_mode", 2)
+
+-- UDP Forward
+s = m:section(TypedSection, "shadowsocks-libev", translate("UDP Forward"))
+s.anonymous = true
+
+o = s:option(Flag, "tunnel_enable", translate("Enable"))
+o.default = 1
+o.rmempty = false
+
+o = s:option(Value, "tunnel_port", translate("UDP Local Port"))
+o.datatype = "port"
+o.default = 5300
+
+o = s:option(Value, "tunnel_forward", translate("Forwarding Tunnel"))
+o.default = "8.8.4.4:53"
+
+-- Access Control
+s = m:section(TypedSection, "shadowsocks-libev", translate("Access Control"))
+s.anonymous = true
+
+s:tab("lan_ac", translate("LAN"))
+
+o = s:taboption("lan_ac", ListValue, "lan_ac_mode", translate("Access Control"))
+o:value("0", translate("Disabled"))
+o:value("1", translate("Allow listed only"))
+o:value("2", translate("Allow all except listed"))
+o.default = 0
+o.rmempty = false
+
+a = luci.sys.net.arptable() or {}
+
+o = s:taboption("lan_ac", DynamicList, "lan_ac_ip", translate("LAN IP List"))
+o.datatype = "ipaddr"
+for i,v in ipairs(a) do
+ o:value(v["IP address"])
+end
+
+s:tab("wan_ac", translate("WAN"))
+
+o = s:taboption("wan_ac", DynamicList, "wan_bp_ip", translate("Bypassed IP"))
+o.datatype = "ip4addr"
+
+o = s:taboption("wan_ac", DynamicList, "wan_fw_ip", translate("Forwarded IP"))
+o.datatype = "ip4addr"
+
+return m
diff --git a/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot b/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot
new file mode 100644
index 0000000000..c2bde961e0
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/po/templates/shadowsocks-libev.pot
@@ -0,0 +1,80 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "ShadowSocks-libev"
+msgstr ""
+
+msgid "ShadowSocks-libev is running"
+msgstr ""
+
+msgid "ShadowSocks-libev is not running"
+msgstr ""
+
+msgid "Global Setting"
+msgstr ""
+
+msgid "Enable"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Disabled"
+msgstr ""
+
+msgid "Custom"
+msgstr ""
+
+msgid "Server Address"
+msgstr ""
+
+msgid "Server Port"
+msgstr ""
+
+msgid "Local Port"
+msgstr ""
+
+msgid "Connection Timeout"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Encrypt Method"
+msgstr ""
+
+msgid "Ignore List"
+msgstr ""
+
+msgid "UDP Relay"
+msgstr ""
+
+msgid "Relay Mode"
+msgstr ""
+
+msgid "UDP Forward"
+msgstr ""
+
+msgid "UDP Local Port"
+msgstr ""
+
+msgid "Forwarding Tunnel"
+msgstr ""
+
+msgid "Access Control"
+msgstr ""
+
+msgid "Allow listed only"
+msgstr ""
+
+msgid "Allow all except listed"
+msgstr ""
+
+msgid "LAN IP List"
+msgstr ""
+
+msgid "Bypassed IP"
+msgstr ""
+
+msgid "Forwarded IP"
+msgstr ""
diff --git a/applications/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po
new file mode 100644
index 0000000000..90a0eff996
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-11-12 14:12+0800\n"
+"PO-Revision-Date: 2015-07-02 14:26+0800\n"
+"Last-Translator: Jian Chang <aa65535@live.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Pootle 2.0.6\n"
+
+msgid "ShadowSocks-libev"
+msgstr "ShadowSocks-libev"
+
+msgid "ShadowSocks-libev is running"
+msgstr "ShadowSocks-libev 运行中"
+
+msgid "ShadowSocks-libev is not running"
+msgstr "ShadowSocks-libev 未运行"
+
+msgid "Global Setting"
+msgstr "全局设置"
+
+msgid "Enable"
+msgstr "启用"
+
+msgid "Enabled"
+msgstr "已启用"
+
+msgid "Disabled"
+msgstr "已禁用"
+
+msgid "Custom"
+msgstr "自定义"
+
+msgid "Server Address"
+msgstr "服务器地址"
+
+msgid "Server Port"
+msgstr "服务器端口"
+
+msgid "Local Port"
+msgstr "本地端口"
+
+msgid "Connection Timeout"
+msgstr "连接超时"
+
+msgid "Password"
+msgstr "密码"
+
+msgid "Encrypt Method"
+msgstr "加密方式"
+
+msgid "Ignore List"
+msgstr "忽略列表"
+
+msgid "UDP Relay"
+msgstr "UDP中继"
+
+msgid "Relay Mode"
+msgstr "中继模式"
+
+msgid "UDP Forward"
+msgstr "UDP转发"
+
+msgid "UDP Local Port"
+msgstr "UDP本地端口"
+
+msgid "Forwarding Tunnel"
+msgstr "UDP转发地址"
+
+msgid "Access Control"
+msgstr "访问控制"
+
+msgid "Allow listed only"
+msgstr "仅允许列表内"
+
+msgid "Allow all except listed"
+msgstr "仅允许列表外"
+
+msgid "LAN IP List"
+msgstr "内网IP列表"
+
+msgid "Bypassed IP"
+msgstr "被忽略的IP"
+
+msgid "Forwarded IP"
+msgstr "走代理的IP"
diff --git a/applications/luci-app-shadowsocks-libev/root/etc/uci-defaults/luci-shadowsocks-libev b/applications/luci-app-shadowsocks-libev/root/etc/uci-defaults/luci-shadowsocks-libev
new file mode 100644
index 0000000000..6f30fa77b7
--- /dev/null
+++ b/applications/luci-app-shadowsocks-libev/root/etc/uci-defaults/luci-shadowsocks-libev
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@shadowsocks-libev[-1]
+ add ucitrack shadowsocks-libev
+ set ucitrack.@shadowsocks-libev[-1].init=shadowsocks-libev
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
index c532b4a6d3..49eab5acd4 100644
--- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
+++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
@@ -30,6 +30,7 @@ function index()
disk = _("Disk Usage"),
dns = _("DNS"),
email = _("Email"),
+ entropy = _("Entropy"),
exec = _("Exec"),
interface = _("Interfaces"),
iptables = _("Firewall"),
@@ -53,7 +54,7 @@ function index()
-- our collectd menu
local collectd_menu = {
output = { "csv", "network", "rrdtool", "unixsock" },
- system = { "cpu", "df", "disk", "email", "exec", "irq", "load", "memory", "nut", "processes", "uptime" },
+ system = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "uptime" },
network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "ping", "splash_leases", "tcpconns", "iwinfo" }
}
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/entropy.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/entropy.lua
new file mode 100644
index 0000000000..d18bf910f9
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/entropy.lua
@@ -0,0 +1,14 @@
+-- Copyright 2015 Hannu Nyman <hannu.nyman@iki.fi>
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("Entropy Plugin Configuration"),
+ translate("The entropy plugin collects statistics about the available entropy."))
+
+s = m:section( NamedSection, "collectd_entropy", "luci_statistics" )
+
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+return m
+
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
index 1f8f4ff88b..d8317a8177 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
@@ -457,6 +457,12 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
_ti ( _args, "-X" )
_ti ( _args, opts.units_exponent )
end
+ if opts.alt_autoscale then
+ _ti ( _args, "-A" )
+ end
+ if opts.alt_autoscale_max then
+ _ti ( _args, "-M" )
+ end
-- store additional rrd options
if opts.rrdopts then
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/conntrack.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/conntrack.lua
index ee3d68fe16..fbc47731ef 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/conntrack.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/conntrack.lua
@@ -9,6 +9,10 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
vlabel = "Count",
number_format = "%5.0lf",
data = {
+ -- collectd 5.5+: specify "" to exclude "max" instance
+ instances = {
+ conntrack = { "" }
+ },
sources = {
conntrack = { "value" }
},
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpu.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpu.lua
index 1ca8a23ee9..ae0c0ce778 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpu.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpu.lua
@@ -8,22 +8,23 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
return {
title = "%H: Processor usage on core #%pi",
y_min = "0",
+ alt_autoscale_max = true,
vlabel = "Percent",
number_format = "%5.1lf%%",
data = {
instances = {
- cpu = { "idle", "user", "system", "nice" }
+ cpu = { "user", "nice", "system", "softirq", "interrupt" }
},
options = {
- cpu_idle = { color = "ffffff" },
- cpu_nice = { color = "00e000" },
- cpu_user = { color = "0000ff" },
- cpu_wait = { color = "ffb000" },
- cpu_system = { color = "ff0000" },
- cpu_softirq = { color = "ff00ff" },
- cpu_interrupt = { color = "a000a0" },
- cpu_steal = { color = "000000" }
+ cpu_idle = { color = "ffffff", title = "Idle" },
+ cpu_nice = { color = "00e000", title = "Nice" },
+ cpu_user = { color = "0000ff", title = "User" },
+ cpu_wait = { color = "ffb000", title = "Wait" },
+ cpu_system = { color = "ff0000", title = "System" },
+ cpu_softirq = { color = "ff00ff", title = "Softirq" },
+ cpu_interrupt = { color = "a000a0", title = "Interrupt" },
+ cpu_steal = { color = "000000", title = "Steal" }
}
}
}
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/entropy.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/entropy.lua
new file mode 100644
index 0000000000..3d30a70afb
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/entropy.lua
@@ -0,0 +1,19 @@
+-- Copyright 2015 Hannu Nyman <hannu.nyman@iki.fi>
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.entropy", package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Available entropy",
+ vlabel = "bits",
+ number_format = "%4.0lf",
+ data = {
+ types = { "entropy" },
+ options = { entropy = { title = "Entropy %di" } }
+ }
+ }
+
+end
+
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/memory.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/memory.lua
index a1c65f56d7..53d559c599 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/memory.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/memory.lua
@@ -17,6 +17,8 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
title = "%H: Memory usage",
vlabel = "MB",
number_format = "%5.1lf%s",
+ y_min = "0",
+ alt_autoscale_max = true,
data = {
instances = {
memory = { "free", "buffered", "cached", "used" }
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/ping.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
index 1a72caf227..347d756f7c 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
@@ -9,7 +9,7 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
{ title = "%H: ICMP Round Trip Time", vlabel = "ms",
number_format = "%5.1lf ms", data = {
sources = { ping = { "value" } },
- options = { ping__ping = { noarea = true, title = "%di" } }
+ options = { ping__value = { noarea = true, title = "%di" } }
} },
-- Ping droprate
diff --git a/applications/luci-app-statistics/luasrc/view/admin_statistics/index.htm b/applications/luci-app-statistics/luasrc/view/admin_statistics/index.htm
index 0000c1961e..0fb3d56375 100644
--- a/applications/luci-app-statistics/luasrc/view/admin_statistics/index.htm
+++ b/applications/luci-app-statistics/luasrc/view/admin_statistics/index.htm
@@ -8,7 +8,10 @@
<h2><a id="content" name="content"><%:Statistics%></a></h2>
-<p><%_The statistics package is based on <a href="http://collectd.org/index.shtml">Collectd</a>
-and uses <a href="http://oss.oetiker.ch/rrdtool/">RRD Tool</a> to render diagram images from collected data.%></p>
+<p><%_The statistics package uses <a href="https://collectd.org/">Collectd</a>
+to gather data and <a href="http://oss.oetiker.ch/rrdtool/">RRDtool</a> to
+render diagram images.%></p>
+
+<p><%_You can install additional collectd-mod-* plugins to enable more statistics.%></p>
<%+footer%>
diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics
index e39db3513a..abcee3e938 100644
--- a/applications/luci-app-statistics/root/etc/config/luci_statistics
+++ b/applications/luci-app-statistics/root/etc/config/luci_statistics
@@ -1,143 +1,153 @@
-config 'statistics' 'rrdtool'
- option 'default_timespan' '1hour'
- option 'image_width' '600'
- option 'image_path' '/tmp/rrdimg'
-
-config 'statistics' 'collectd'
- option 'BaseDir' '/var/run/collectd'
- option 'Include' '/etc/collectd/conf.d'
- option 'PIDFile' '/var/run/collectd.pid'
- option 'PluginDir' '/usr/lib/collectd'
- option 'TypesDB' '/usr/share/collectd/types.db'
- option 'Interval' '30'
- option 'ReadThreads' '2'
-
-config 'statistics' 'collectd_ping'
- option 'enable' '0'
- option 'TTL' '127'
- option 'Interval' '30'
- option 'Hosts' '127.0.0.1'
-
-config 'statistics' 'collectd_csv'
- option 'enable' '0'
- option 'StoreRates' '0'
- option 'DataDir' '/tmp'
-
-config 'statistics' 'collectd_df'
- option 'enable' '0'
- option 'Devices' '/dev/mtdblock/4'
- option 'MountPoints' '/jffs'
- option 'FSTypes' 'tmpfs'
- option 'IgnoreSelected' '0'
-
-config 'statistics' 'collectd_disk'
- option 'enable' '0'
- option 'Disks' 'hda1 hdb'
- option 'IgnoreSelected' '0'
-
-config 'statistics' 'collectd_dns'
- option 'enable' '0'
- option 'Interfaces' 'ffdhcp ff br-lan'
- option 'IgnoreSources' '127.0.0.1'
-
-config 'statistics' 'collectd_email'
- option 'enable' '0'
- option 'SocketFile' '/var/run/collectd/email.sock'
- option 'SocketGroup' 'nogroup'
-
-config 'statistics' 'collectd_exec'
- option 'enable' '0'
-
-config 'statistics' 'collectd_interface'
- option 'enable' '1'
- option 'Interfaces' 'br-lan br-ff'
- option 'IgnoreSelected' '0'
-
-config 'statistics' 'collectd_iptables'
- option 'enable' '1'
-
-config 'collectd_iptables_match'
- option 'table' 'nat'
- option 'chain' 'luci_fw_postrouting'
- option 'target' 'MASQUERADE'
- option 'source' '192.168.1.0/24'
- option 'outputif' 'br-ff'
- option 'name' 'Verkehr LAN-Clients'
-
-config 'collectd_iptables_match'
- option 'chain' 'luci_fw_postrouting'
- option 'table' 'nat'
- option 'target' 'MASQUERADE'
- option 'source' '10.61.230.0/24'
- option 'outputif' 'br-ff'
- option 'name' 'Verkehr WLAN-Clients'
-
-config 'statistics' 'collectd_irq'
- option 'enable' '0'
- option 'Irqs' '2 3 4 7'
-
-config 'statistics' 'collectd_load'
- option 'enable' '1'
-
-config 'statistics' 'collectd_logfile'
- option 'enable' '0'
- option 'LogLevel' 'notice'
- option 'File' '/var/log/collectd.log'
- option 'Timestamp' '1'
-
-config 'statistics' 'collectd_netlink'
- option 'enable' '0'
- option 'IgnoreSelected' '0'
- option 'VerboseInterfaces' 'br-lan br-ff'
- option 'QDiscs' 'br-lan br-ff'
-
-config 'statistics' 'collectd_network'
- option 'enable' '0'
-
-config 'statistics' 'collectd_processes'
- option 'enable' '1'
- option 'Processes' 'uhttpd dnsmasq dropbear'
-
-config statistics 'collectd_splash_leases'
- option enable '1'
-
-config 'statistics' 'collectd_tcpconns'
- option 'enable' '1'
- option 'ListeningPorts' '0'
- option 'LocalPorts' '22 80'
-
-config 'statistics' 'collectd_unixsock'
- option 'enable' '0'
- option 'SocketFile' '/var/run/collectd/query.sock'
- option 'SocketGroup' 'nogroup'
-
-config 'statistics' 'collectd_cpu'
- option 'enable' '1'
-
-config 'statistics' 'collectd_rrdtool'
- option 'enable' '1'
- option 'DataDir' '/tmp/rrd'
- option 'RRARows' '100'
- option 'RRASingle' '1'
- option 'RRATimespans' '1hour 1day 1week 1month 1year'
-
-config 'statistics' 'collectd_memory'
- option 'enable' '1'
-
-config 'statistics' 'collectd_conntrack'
- option 'enable' '1'
-
-config 'statistics' 'collectd_olsrd'
- option 'enable' '1'
- option 'Port' '2006'
- option 'Host' '127.0.0.1'
-
-config 'statistics' 'collectd_iwinfo'
- option 'enable' '1'
-
-config 'statistics' 'collectd_nut'
- option 'enable' '0'
- option 'UPS' 'myupsname'
-
-config 'statistics' 'collectd_uptime'
- option 'enable' '1'
+# general settings
+
+config statistics 'collectd'
+ option BaseDir '/var/run/collectd'
+ option Include '/etc/collectd/conf.d'
+ option PIDFile '/var/run/collectd.pid'
+ option PluginDir '/usr/lib/collectd'
+ option TypesDB '/usr/share/collectd/types.db'
+ option Interval '30'
+ option ReadThreads '2'
+
+config statistics 'rrdtool'
+ option default_timespan '1hour'
+ option image_width '600'
+ option image_path '/tmp/rrdimg'
+
+# output plugins
+
+config statistics 'collectd_rrdtool'
+ option enable '1'
+ option DataDir '/tmp/rrd'
+ option RRARows '100'
+ option RRASingle '1'
+ option RRATimespans '1hour 1day 1week 1month 1year'
+
+config statistics 'collectd_csv'
+ option enable '0'
+ option StoreRates '0'
+ option DataDir '/tmp'
+
+config statistics 'collectd_email'
+ option enable '0'
+ option SocketFile '/var/run/collectd/email.sock'
+ option SocketGroup 'nogroup'
+
+config statistics 'collectd_logfile'
+ option enable '0'
+ option LogLevel 'notice'
+ option File '/var/log/collectd.log'
+ option Timestamp '1'
+
+config statistics 'collectd_network'
+ option enable '0'
+
+config statistics 'collectd_unixsock'
+ option enable '0'
+ option SocketFile '/var/run/collectd/query.sock'
+ option SocketGroup 'nogroup'
+
+# input plugins
+
+config statistics 'collectd_conntrack'
+ option enable '0'
+
+config statistics 'collectd_cpu'
+ option enable '0'
+
+config statistics 'collectd_df'
+ option enable '0'
+ option Devices '/dev/mtdblock/4'
+ option MountPoints '/jffs'
+ option FSTypes 'tmpfs'
+ option IgnoreSelected '0'
+
+config statistics 'collectd_disk'
+ option enable '0'
+ option Disks 'hda1 hdb'
+ option IgnoreSelected '0'
+
+config statistics 'collectd_dns'
+ option enable '0'
+ option Interfaces 'br-lan'
+ option IgnoreSources '127.0.0.1'
+
+config statistics 'collectd_entropy'
+ option enable '0'
+
+config statistics 'collectd_exec'
+ option enable '0'
+
+config statistics 'collectd_interface'
+ option enable '1'
+ option Interfaces 'br-lan'
+ option IgnoreSelected '0'
+
+config statistics 'collectd_iptables'
+ option enable '0'
+
+config collectd_iptables_match
+ option table 'nat'
+ option chain 'luci_fw_postrouting'
+ option target 'MASQUERADE'
+ option source '192.168.1.0/24'
+ option outputif 'br-ff'
+ option name 'LAN-Clients traffic'
+
+config collectd_iptables_match
+ option chain 'luci_fw_postrouting'
+ option table 'nat'
+ option target 'MASQUERADE'
+ option source '10.61.230.0/24'
+ option outputif 'br-ff'
+ option name 'WLAN-Clients traffic'
+
+config statistics 'collectd_irq'
+ option enable '0'
+ option Irqs '2 3 4 7'
+
+config statistics 'collectd_iwinfo'
+ option enable '1'
+
+config statistics 'collectd_load'
+ option enable '1'
+
+config statistics 'collectd_memory'
+ option enable '0'
+
+config statistics 'collectd_netlink'
+ option enable '0'
+ option IgnoreSelected '0'
+ option VerboseInterfaces 'br-lan'
+ option QDiscs 'br-lan'
+
+config statistics 'collectd_nut'
+ option enable '0'
+ option UPS 'myupsname'
+
+config statistics 'collectd_olsrd'
+ option enable '0'
+ option Port '2006'
+ option Host '127.0.0.1'
+
+config statistics 'collectd_ping'
+ option enable '0'
+ option TTL '127'
+ option Interval '30'
+ option Hosts '127.0.0.1'
+
+config statistics 'collectd_processes'
+ option enable '0'
+ option Processes 'uhttpd dnsmasq dropbear'
+
+config statistics 'collectd_splash_leases'
+ option enable '0'
+
+config statistics 'collectd_tcpconns'
+ option enable '0'
+ option ListeningPorts '0'
+ option LocalPorts '22 80'
+
+config statistics 'collectd_uptime'
+ option enable '0'
+
diff --git a/applications/luci-app-statistics/root/etc/init.d/luci_statistics b/applications/luci-app-statistics/root/etc/init.d/luci_statistics
index 936f3a63c3..ab75b69df0 100755
--- a/applications/luci-app-statistics/root/etc/init.d/luci_statistics
+++ b/applications/luci-app-statistics/root/etc/init.d/luci_statistics
@@ -3,23 +3,15 @@ START=79
start() {
### replace shipped config with symlink
+ mkdir -p /var/etc
if [ ! -L /etc/collectd.conf ]; then
test -f /etc/collectd.conf && mv /etc/collectd.conf /etc/collectd.conf.bak
ln -s /var/etc/collectd.conf /etc/collectd.conf
fi
### create config
- mkdir -p /var/etc
/usr/bin/stat-genconfig > /var/etc/collectd.conf
- ### prepare rrdimg directory
- if [ -f /etc/config/lucid ] && [ -x /etc/init.d/lucid ] && /etc/init.d/lucid enabled && \
- [ "$(uci get luci_statistics.rrdtool.image_path 2>/dev/null)" != "$(uci get lucid.statistics.physical 2>/dev/null)" ]; then
- uci set lucid.statistics.physical=$(uci get luci_statistics.rrdtool.image_path)
- uci commit lucid
- /etc/init.d/lucid restart
- fi
-
### workaround broken permissions on /tmp
chmod 1777 /tmp
}
diff --git a/applications/luci-app-statistics/root/etc/uci-defaults/luci-statistics b/applications/luci-app-statistics/root/etc/uci-defaults/luci-statistics
index e94a8637c8..28e35298a2 100755
--- a/applications/luci-app-statistics/root/etc/uci-defaults/luci-statistics
+++ b/applications/luci-app-statistics/root/etc/uci-defaults/luci-statistics
@@ -8,29 +8,9 @@ uci -q batch <<-EOF >/dev/null
commit ucitrack
EOF
-# register LuCId virtual path handler
-[ -f /etc/config/lucid ] && \
-uci -q batch <<-EOF >/dev/null
- delete lucid.statistics
-
- set lucid.statistics=DirectoryPublisher
- set lucid.statistics.name='RRDTool Image Cache'
- set lucid.statistics.physical=/tmp/rrdimg
- set lucid.statistics.virtual=/rrdimg
- set lucid.statistics.domain=''
-
- add_list lucid.http.publisher=statistics
- add_list lucid.https.publisher=statistics
-
- commit lucid
-EOF
-
# symlink for busybox httpd
[ -x /usr/sbin/httpd ] && [ ! -h /www/rrdimg ] && \
ln -s /tmp/rrdimg /www/rrdimg
-# restart LuCId service
-[ -x /etc/init.d/lucid ] && /etc/init.d/lucid enabled && /etc/init.d/lucid restart
-
rm -f /tmp/luci-indexcache
exit 0
diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
index cb94e28118..8acae46c61 100755
--- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig
+++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
@@ -303,6 +303,12 @@ plugins = {
{ }
},
+ entropy = {
+ { },
+ { },
+ { }
+ },
+
exec = config_exec,
interface = {
diff --git a/applications/luci-app-upnp/root/etc/uci-defaults/luci-upnp b/applications/luci-app-upnp/root/etc/uci-defaults/luci-upnp
deleted file mode 100755
index fe22a3e3c1..0000000000
--- a/applications/luci-app-upnp/root/etc/uci-defaults/luci-upnp
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-/etc/init.d/miniupnpd enabled && {
- /etc/init.d/miniupnpd stop
- /etc/init.d/miniupnpd disable
-}
-
-rm -f /tmp/luci-indexcache
-exit 0
diff --git a/applications/luci-app-vnstat/luasrc/view/vnstat.htm b/applications/luci-app-vnstat/luasrc/view/vnstat.htm
index cfa1a5de51..2b502559b8 100644
--- a/applications/luci-app-vnstat/luasrc/view/vnstat.htm
+++ b/applications/luci-app-vnstat/luasrc/view/vnstat.htm
@@ -22,7 +22,7 @@ style = (style and #style > 0) and style or "s"
--
if iface then
style = style:gsub("[^%w]", "")
- iface = iface:gsub("[^%w%.%-]", "")
+ iface = iface:gsub("[^%w%.%-%_]", "")
luci.http.prepare_content("image/png")