summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/luci-base/Makefile1
-rw-r--r--modules/luci-base/luasrc/model/network.lua371
-rw-r--r--modules/luci-base/luasrc/sys.lua35
-rw-r--r--modules/luci-base/po/ca/base.po2
-rw-r--r--modules/luci-base/po/cs/base.po2
-rw-r--r--modules/luci-base/po/de/base.po2
-rw-r--r--modules/luci-base/po/el/base.po2
-rw-r--r--modules/luci-base/po/en/base.po2
-rw-r--r--modules/luci-base/po/es/base.po2
-rw-r--r--modules/luci-base/po/fr/base.po2
-rw-r--r--modules/luci-base/po/he/base.po2
-rw-r--r--modules/luci-base/po/hu/base.po2
-rw-r--r--modules/luci-base/po/it/base.po2
-rw-r--r--modules/luci-base/po/ja/base.po2
-rw-r--r--modules/luci-base/po/ko/base.po2
-rw-r--r--modules/luci-base/po/ms/base.po2
-rw-r--r--modules/luci-base/po/no/base.po2
-rw-r--r--modules/luci-base/po/pl/base.po2
-rw-r--r--modules/luci-base/po/pt-br/base.po2
-rw-r--r--modules/luci-base/po/pt/base.po2
-rw-r--r--modules/luci-base/po/ro/base.po2
-rw-r--r--modules/luci-base/po/ru/base.po2
-rw-r--r--modules/luci-base/po/sk/base.po2
-rw-r--r--modules/luci-base/po/sv/base.po2
-rw-r--r--modules/luci-base/po/templates/base.pot2
-rw-r--r--modules/luci-base/po/tr/base.po2
-rw-r--r--modules/luci-base/po/uk/base.po2
-rw-r--r--modules/luci-base/po/vi/base.po2
-rw-r--r--modules/luci-base/po/zh-cn/base.po2
-rw-r--r--modules/luci-base/po/zh-tw/base.po2
-rw-r--r--modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua4
-rw-r--r--modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/fstab.lua2
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_network/lease_status.htm17
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm19
34 files changed, 270 insertions, 233 deletions
diff --git a/modules/luci-base/Makefile b/modules/luci-base/Makefile
index 6393195e59..d3039ef41b 100644
--- a/modules/luci-base/Makefile
+++ b/modules/luci-base/Makefile
@@ -13,6 +13,7 @@ LUCI_BASENAME:=base
LUCI_TITLE:=LuCI core libraries
LUCI_DEPENDS:=+lua +libuci-lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua +luci-lib-jsonc
+LUCI_EXTRA_DEPENDS:=libuci-lua (>= 2018-01-01)
PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2
PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luasrcdiet
diff --git a/modules/luci-base/luasrc/model/network.lua b/modules/luci-base/luasrc/model/network.lua
index d9ef4089c8..6f405a1314 100644
--- a/modules/luci-base/luasrc/model/network.lua
+++ b/modules/luci-base/luasrc/model/network.lua
@@ -6,14 +6,12 @@ local type, next, pairs, ipairs, loadfile, table, select
local tonumber, tostring, math = tonumber, tostring, math
-local require = require
+local pcall, require, setmetatable = pcall, require, setmetatable
local nxo = require "nixio"
local nfs = require "nixio.fs"
local ipc = require "luci.ip"
-local sys = require "luci.sys"
local utl = require "luci.util"
-local dsp = require "luci.dispatcher"
local uci = require "luci.model.uci"
local lng = require "luci.i18n"
local jsc = require "luci.jsonc"
@@ -108,6 +106,58 @@ function _set(c, s, o, v)
end
end
+local function _wifi_state()
+ if not next(_ubuswificache) then
+ _ubuswificache = utl.ubus("network.wireless", "status", {}) or {}
+ end
+ return _ubuswificache
+end
+
+local function _wifi_state_by_sid(sid)
+ local t1, n1 = _uci:get("wireless", sid)
+ if t1 == "wifi-iface" and n1 ~= nil then
+ local radioname, radiostate
+ for radioname, radiostate in pairs(_wifi_state()) do
+ if type(radiostate) == "table" and
+ type(radiostate.interfaces) == "table"
+ then
+ local netidx, netstate
+ for netidx, netstate in ipairs(radiostate.interfaces) do
+ if type(netstate) == "table" and
+ type(netstate.section) == "string"
+ then
+ local t2, n2 = _uci:get("wireless", netstate.section)
+ if t1 == t2 and n1 == n2 then
+ return radioname, radiostate, netstate
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+local function _wifi_state_by_ifname(ifname)
+ if type(ifname) == "string" then
+ local radioname, radiostate
+ for radioname, radiostate in pairs(_wifi_state()) do
+ if type(radiostate) == "table" and
+ type(radiostate.interfaces) == "table"
+ then
+ local netidx, netstate
+ for netidx, netstate in ipairs(radiostate.interfaces) do
+ if type(netstate) == "table" and
+ type(netstate.ifname) == "string" and
+ netstate.ifname == ifname
+ then
+ return radioname, radiostate, netstate
+ end
+ end
+ end
+ end
+ end
+end
+
function _wifi_iface(x)
local _, p
for _, p in ipairs(IFACE_PATTERNS_WIRELESS) do
@@ -118,61 +168,113 @@ function _wifi_iface(x)
return false
end
-function _wifi_state(key, val, field)
- local radio, radiostate, ifc, ifcstate
-
- if not next(_ubuswificache) then
- _ubuswificache = utl.ubus("network.wireless", "status", {}) or {}
+local function _wifi_iwinfo_by_ifname(ifname, force_phy_only)
+ local stat, iwinfo = pcall(require, "iwinfo")
+ local iwtype = stat and type(ifname) == "string" and iwinfo.type(ifname)
+ local is_nonphy_op = {
+ bitrate = true,
+ quality = true,
+ quality_max = true,
+ mode = true,
+ ssid = true,
+ bssid = true,
+ assoclist = true,
+ encryption = true
+ }
- -- workaround extended section format
- for radio, radiostate in pairs(_ubuswificache) do
- for ifc, ifcstate in pairs(radiostate.interfaces) do
- if ifcstate.section and ifcstate.section:sub(1, 1) == '@' then
- local s = _uci:get_all('wireless.%s' % ifcstate.section)
- if s then
- ifcstate.section = s['.name']
- end
+ if iwtype then
+ -- if we got a type but no real netdev, we're referring to a phy
+ local phy_only = force_phy_only or (ipc.link(ifname).type ~= 1)
+
+ return setmetatable({}, {
+ __index = function(t, k)
+ if k == "ifname" then
+ return ifname
+ elseif phy_only and is_nonphy_op[k] then
+ return nil
+ elseif iwinfo[iwtype][k] then
+ return iwinfo[iwtype][k](ifname)
end
end
- end
+ })
end
+end
- for radio, radiostate in pairs(_ubuswificache) do
- for ifc, ifcstate in pairs(radiostate.interfaces) do
- if ifcstate[key] == val then
- return ifcstate[field]
- end
+local function _wifi_sid_by_netid(netid)
+ if type(netid) == "string" then
+ local radioname, netidx = netid:match("^(%w+)%.network(%d+)$")
+ if radioname and netidx then
+ local i, n = 0, nil
+
+ netidx = tonumber(netidx)
+ _uci:foreach("wireless", "wifi-iface",
+ function(s)
+ if s.device == radioname then
+ i = i + 1
+ if i == netidx then
+ n = s[".name"]
+ return false
+ end
+ end
+ end)
+
+ return n
end
end
end
-function _wifi_lookup(ifn)
- -- got a radio#.network# pseudo iface, locate the corresponding section
- local radio, ifnidx = ifn:match("^(%w+)%.network(%d+)$")
- if radio and ifnidx then
- local sid = nil
- local num = 0
+function _wifi_sid_by_ifname(ifn)
+ local sid = _wifi_sid_by_netid(ifn)
+ if sid then
+ return sid
+ end
- ifnidx = tonumber(ifnidx)
- _uci:foreach("wireless", "wifi-iface",
- function(s)
- if s.device == radio then
- num = num + 1
- if num == ifnidx then
- sid = s['.name']
- return false
- end
- end
- end)
+ local _, _, netstate = _wifi_state_by_ifname(ifn)
+ if netstate and type(netstate.section) == "string" then
+ return netstate.section
+ end
+end
- return sid
+local function _wifi_netid_by_sid(sid)
+ local t, n = _uci:get("wireless", sid)
+ if t == "wifi-iface" and n ~= nil then
+ local radioname = _uci:get("wireless", n, "device")
+ if type(radioname) == "string" then
+ local i, netid = 0, nil
+
+ _uci:foreach("wireless", "wifi-iface",
+ function(s)
+ if s.device == radioname then
+ i = i + 1
+ if s[".name"] == n then
+ netid = "%s.network%d" %{ radioname, i }
+ return false
+ end
+ end
+ end)
- -- looks like wifi, try to locate the section via ubus state
- elseif _wifi_iface(ifn) then
- return _wifi_state("ifname", ifn, "section")
+ return netid, radioname
+ end
end
end
+local function _wifi_netid_by_netname(name)
+ local netid = nil
+
+ _uci:foreach("wireless", "wifi-iface",
+ function(s)
+ local net
+ for net in utl.imatch(s.network) do
+ if net == name then
+ netid = _wifi_netid_by_sid(s[".name"])
+ return false
+ end
+ end
+ end)
+
+ return netid
+end
+
function _iface_virtual(x)
local _, p
for _, p in ipairs(IFACE_PATTERNS_VIRTUAL) do
@@ -524,20 +626,8 @@ function get_interface(self, i)
if _interfaces[i] or _wifi_iface(i) then
return interface(i)
else
- local ifc
- local num = { }
- _uci:foreach("wireless", "wifi-iface",
- function(s)
- if s.device then
- num[s.device] = num[s.device] and num[s.device] + 1 or 1
- if s['.name'] == i then
- ifc = interface(
- "%s.network%d" %{s.device, num[s.device] })
- return false
- end
- end
- end)
- return ifc
+ local netid = _wifi_netid_by_netname(i)
+ return netid and interface(netid)
end
end
@@ -644,7 +734,7 @@ function get_wifidevs(self)
end
function get_wifinet(self, net)
- local wnet = _wifi_lookup(net)
+ local wnet = _wifi_sid_by_ifname(net)
if wnet then
return wifinet(wnet)
end
@@ -660,7 +750,7 @@ function add_wifinet(self, net, options)
end
function del_wifinet(self, net)
- local wnet = _wifi_lookup(net)
+ local wnet = _wifi_sid_by_ifname(net)
if wnet then
_uci:delete("wireless", wnet)
return true
@@ -784,22 +874,7 @@ function protocol.ifname(self)
ifname = self:_ubus("device")
end
if not ifname then
- local num = { }
- _uci:foreach("wireless", "wifi-iface",
- function(s)
- if s.device then
- num[s.device] = num[s.device]
- and num[s.device] + 1 or 1
-
- local net
- for net in utl.imatch(s.network) do
- if net == self.sid then
- ifname = "%s.network%d" %{ s.device, num[s.device] }
- return false
- end
- end
- end
- end)
+ ifname = _wifi_netid_by_netname(self.sid)
end
return ifname
end
@@ -981,24 +1056,17 @@ function protocol.is_empty(self)
if self:is_floating() then
return false
else
- local rv = true
+ local empty = true
if (self:_get("ifname") or ""):match("%S+") then
- rv = false
+ empty = false
end
- _uci:foreach("wireless", "wifi-iface",
- function(s)
- local n
- for n in utl.imatch(s.network) do
- if n == self.sid then
- rv = false
- return false
- end
- end
- end)
+ if empty and _wifi_netid_by_netname(self.sid) then
+ empty = false
+ end
- return rv
+ return empty
end
end
@@ -1006,7 +1074,7 @@ function protocol.add_interface(self, ifname)
ifname = _M:ifnameof(ifname)
if ifname and not self:is_floating() then
-- if its a wifi interface, change its network option
- local wif = _wifi_lookup(ifname)
+ local wif = _wifi_sid_by_ifname(ifname)
if wif then
_append("wireless", wif, "network", self.sid)
@@ -1021,7 +1089,7 @@ function protocol.del_interface(self, ifname)
ifname = _M:ifnameof(ifname)
if ifname and not self:is_floating() then
-- if its a wireless interface, clear its network option
- local wif = _wifi_lookup(ifname)
+ local wif = _wifi_sid_by_ifname(ifname)
if wif then _filter("wireless", wif, "network", self.sid) end
-- remove the interface
@@ -1043,21 +1111,7 @@ function protocol.get_interface(self)
ifn = ifn:match("^[^:/]+")
return ifn and interface(ifn, self)
end
- ifn = nil
- _uci:foreach("wireless", "wifi-iface",
- function(s)
- if s.device then
- num[s.device] = num[s.device] and num[s.device] + 1 or 1
-
- local net
- for net in utl.imatch(s.network) do
- if net == self.sid then
- ifn = "%s.network%d" %{ s.device, num[s.device] }
- return false
- end
- end
- end
- end)
+ ifn = _wifi_netid_by_netname(self.sid)
return ifn and interface(ifn, self)
end
end
@@ -1077,18 +1131,17 @@ function protocol.get_interfaces(self)
ifaces[#ifaces+1] = nfs[ifn]
end
- local num = { }
local wfs = { }
_uci:foreach("wireless", "wifi-iface",
function(s)
if s.device then
- num[s.device] = num[s.device] and num[s.device] + 1 or 1
-
local net
for net in utl.imatch(s.network) do
if net == self.sid then
- ifn = "%s.network%d" %{ s.device, num[s.device] }
- wfs[ifn] = interface(ifn, self)
+ ifn = _wifi_netid_by_sid(s[".name"])
+ if ifn then
+ wfs[ifn] = interface(ifn, self)
+ end
end
end
end
@@ -1119,7 +1172,7 @@ function protocol.contains_interface(self, ifname)
end
end
- local wif = _wifi_lookup(ifname)
+ local wif = _wifi_sid_by_ifname(ifname)
if wif then
local n
for n in utl.imatch(_uci:get("wireless", wif, "network")) do
@@ -1134,17 +1187,18 @@ function protocol.contains_interface(self, ifname)
end
function protocol.adminlink(self)
- return dsp.build_url("admin", "network", "network", self.sid)
+ local stat, dsp = pcall(require, "luci.dispatcher")
+ return stat and dsp.build_url("admin", "network", "network", self.sid)
end
interface = utl.class()
function interface.__init__(self, ifname, network)
- local wif = _wifi_lookup(ifname)
+ local wif = _wifi_sid_by_ifname(ifname)
if wif then
self.wif = wifinet(wif)
- self.ifname = _wifi_state("section", wif, "ifname")
+ self.ifname = self.wif:ifname()
end
self.ifname = self.ifname or ifname
@@ -1332,9 +1386,14 @@ end
wifidev = utl.class()
-function wifidev.__init__(self, dev)
- self.sid = dev
- self.iwinfo = dev and sys.wifi.getiwinfo(dev) or { }
+function wifidev.__init__(self, name)
+ local t, n = _uci:get("wireless", name)
+ if t == "wifi-device" and n ~= nil then
+ self.sid = n
+ self.iwinfo = _wifi_iwinfo_by_ifname(self.sid, true)
+ end
+ self.sid = self.sid or name
+ self.iwinfo = self.iwinfo or { ifname = self.sid }
end
function wifidev.get(self, opt)
@@ -1387,7 +1446,7 @@ function wifidev.get_wifinet(self, net)
if _uci:get("wireless", net) == "wifi-iface" then
return wifinet(net)
else
- local wnet = _wifi_lookup(net)
+ local wnet = _wifi_sid_by_ifname(net)
if wnet then
return wifinet(wnet)
end
@@ -1421,7 +1480,7 @@ function wifidev.del_wifinet(self, net)
if utl.instanceof(net, wifinet) then
net = net.sid
elseif _uci:get("wireless", net) ~= "wifi-iface" then
- net = _wifi_lookup(net)
+ net = _wifi_sid_by_ifname(net)
end
if net and _uci:get("wireless", net, "device") == self.sid then
@@ -1435,49 +1494,50 @@ end
wifinet = utl.class()
-function wifinet.__init__(self, net, data)
- self.sid = net
-
- local n = 0
- local num = { }
- local netid, sid
- _uci:foreach("wireless", "wifi-iface",
- function(s)
- n = n + 1
- if s.device then
- num[s.device] = num[s.device] and num[s.device] + 1 or 1
- if s['.name'] == self.sid then
- sid = "@wifi-iface[%d]" % n
- netid = "%s.network%d" %{ s.device, num[s.device] }
- return false
- end
- end
- end)
+function wifinet.__init__(self, name, data)
+ local sid, netid, radioname, radiostate, netstate
+ -- lookup state by radio#.network# notation
+ sid = _wifi_sid_by_netid(name)
if sid then
- local _, k, r, i
- for k, r in pairs(_ubuswificache) do
- if type(r) == "table" and
- type(r.interfaces) == "table"
- then
- for _, i in ipairs(r.interfaces) do
- if type(i) == "table" and i.section == sid then
- self._ubusdata = {
- radio = k,
- dev = r,
- net = i
- }
- end
+ netid = name
+ radioname, radiostate, netstate = _wifi_state_by_sid(sid)
+ else
+ -- lookup state by ifname (e.g. wlan0)
+ radioname, radiostate, netstate = _wifi_state_by_ifname(name)
+ if radioname and radiostate and netstate then
+ sid = netstate.section
+ netid = _wifi_netid_by_sid(sid)
+ else
+ -- lookup state by uci section id (e.g. cfg053579)
+ radioname, radiostate, netstate = _wifi_state_by_sid(name)
+ if radioname and radiostate and netstate then
+ sid = name
+ netid = _wifi_netid_by_sid(sid)
+ else
+ -- no state available, try to resolve from uci
+ netid, radioname = _wifi_netid_by_sid(name)
+ if netid and radioname then
+ sid = name
end
end
end
end
- local dev = _wifi_state("section", self.sid, "ifname") or netid
+ local iwinfo =
+ (netstate and _wifi_iwinfo_by_ifname(netstate.ifname)) or
+ (radioname and _wifi_iwinfo_by_ifname(radioname)) or
+ { ifname = (netid or sid or name) }
- self.netid = netid
- self.wdev = dev
- self.iwinfo = dev and sys.wifi.getiwinfo(dev) or { }
+ self.sid = sid or name
+ self.wdev = iwinfo.ifname
+ self.iwinfo = iwinfo
+ self.netid = netid
+ self._ubusdata = {
+ radio = radioname,
+ dev = radiostate,
+ net = netstate
+ }
end
function wifinet.ubus(self, ...)
@@ -1664,7 +1724,8 @@ function wifinet.get_i18n(self)
end
function wifinet.adminlink(self)
- return dsp.build_url("admin", "network", "wireless", self.netid)
+ local stat, dsp = pcall(require, "luci.dispatcher")
+ return dsp and dsp.build_url("admin", "network", "wireless", self.netid)
end
function wifinet.get_network(self)
diff --git a/modules/luci-base/luasrc/sys.lua b/modules/luci-base/luasrc/sys.lua
index 115c54d54a..3fcfd4def7 100644
--- a/modules/luci-base/luasrc/sys.lua
+++ b/modules/luci-base/luasrc/sys.lua
@@ -7,6 +7,7 @@ local table = require "table"
local nixio = require "nixio"
local fs = require "nixio.fs"
local uci = require "luci.model.uci"
+local ntm = require "luci.model.network"
local luci = {}
luci.util = require "luci.util"
@@ -451,37 +452,9 @@ end
wifi = {}
function wifi.getiwinfo(ifname)
- local stat, iwinfo = pcall(require, "iwinfo")
-
- if ifname then
- local d, n = ifname:match("^(%w+)%.network(%d+)")
- local wstate = luci.util.ubus("network.wireless", "status") or { }
-
- d = d or ifname
- n = n and tonumber(n) or 1
-
- if type(wstate[d]) == "table" and
- type(wstate[d].interfaces) == "table" and
- type(wstate[d].interfaces[n]) == "table" and
- type(wstate[d].interfaces[n].ifname) == "string"
- then
- ifname = wstate[d].interfaces[n].ifname
- else
- ifname = d
- end
-
- local t = stat and iwinfo.type(ifname)
- local x = t and iwinfo[t] or { }
- return setmetatable({}, {
- __index = function(t, k)
- if k == "ifname" then
- return ifname
- elseif x[k] then
- return x[k](ifname)
- end
- end
- })
- end
+ ntm.init()
+ local wnet = ntm.wifinet(ifname)
+ return wnet.iwinfo or { ifname = ifname }
end
diff --git a/modules/luci-base/po/ca/base.po b/modules/luci-base/po/ca/base.po
index e69534b3ba..ec3d1b0bd2 100644
--- a/modules/luci-base/po/ca/base.po
+++ b/modules/luci-base/po/ca/base.po
@@ -605,7 +605,7 @@ msgstr "Canal"
msgid "Check"
msgstr "Comprovació"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po
index bff89c8845..2b93b35d3f 100644
--- a/modules/luci-base/po/cs/base.po
+++ b/modules/luci-base/po/cs/base.po
@@ -598,7 +598,7 @@ msgstr "Kanál"
msgid "Check"
msgstr "Kontrola"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po
index eb9221f163..9e19bd1e7d 100644
--- a/modules/luci-base/po/de/base.po
+++ b/modules/luci-base/po/de/base.po
@@ -612,7 +612,7 @@ msgstr "Kanal"
msgid "Check"
msgstr "Prüfen"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr "Dateisysteme prüfen"
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/el/base.po b/modules/luci-base/po/el/base.po
index ca8240f457..b742380fdd 100644
--- a/modules/luci-base/po/el/base.po
+++ b/modules/luci-base/po/el/base.po
@@ -607,7 +607,7 @@ msgstr "Κανάλι"
msgid "Check"
msgstr "Έλεγχος"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/en/base.po b/modules/luci-base/po/en/base.po
index 6db22b6e66..2e70796b7a 100644
--- a/modules/luci-base/po/en/base.po
+++ b/modules/luci-base/po/en/base.po
@@ -596,7 +596,7 @@ msgstr "Channel"
msgid "Check"
msgstr "Check"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po
index 088bdbd104..6aae853a08 100644
--- a/modules/luci-base/po/es/base.po
+++ b/modules/luci-base/po/es/base.po
@@ -603,7 +603,7 @@ msgstr "Canal"
msgid "Check"
msgstr "Comprobar"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/fr/base.po b/modules/luci-base/po/fr/base.po
index a94ffb3a88..4f2cc96247 100644
--- a/modules/luci-base/po/fr/base.po
+++ b/modules/luci-base/po/fr/base.po
@@ -608,7 +608,7 @@ msgstr "Canal"
msgid "Check"
msgstr "Vérification"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/he/base.po b/modules/luci-base/po/he/base.po
index 2997941335..aca653701d 100644
--- a/modules/luci-base/po/he/base.po
+++ b/modules/luci-base/po/he/base.po
@@ -598,7 +598,7 @@ msgstr "ערוץ"
msgid "Check"
msgstr "לבדוק"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po
index 00b4d77d71..96ac3f2115 100644
--- a/modules/luci-base/po/hu/base.po
+++ b/modules/luci-base/po/hu/base.po
@@ -603,7 +603,7 @@ msgstr "Csatorna"
msgid "Check"
msgstr "Ellenőrzés"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/it/base.po b/modules/luci-base/po/it/base.po
index b90ca79bf7..bc1e255b86 100644
--- a/modules/luci-base/po/it/base.po
+++ b/modules/luci-base/po/it/base.po
@@ -610,7 +610,7 @@ msgstr "Canale"
msgid "Check"
msgstr "Verifica"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr "Controlla i filesystem prima di montare"
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po
index 1d321f9394..9254b1db5c 100644
--- a/modules/luci-base/po/ja/base.po
+++ b/modules/luci-base/po/ja/base.po
@@ -603,7 +603,7 @@ msgstr "チャネル"
msgid "Check"
msgstr "チェック"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr "マウント前にファイルシステムをチェックする"
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po
index cde3c04c13..2e3ac4ec57 100644
--- a/modules/luci-base/po/ko/base.po
+++ b/modules/luci-base/po/ko/base.po
@@ -592,7 +592,7 @@ msgstr ""
msgid "Check"
msgstr ""
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/ms/base.po b/modules/luci-base/po/ms/base.po
index 74d3e19d7f..bb2331be6b 100644
--- a/modules/luci-base/po/ms/base.po
+++ b/modules/luci-base/po/ms/base.po
@@ -582,7 +582,7 @@ msgstr "Saluran"
msgid "Check"
msgstr ""
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/no/base.po b/modules/luci-base/po/no/base.po
index f1bfec4f59..151746363b 100644
--- a/modules/luci-base/po/no/base.po
+++ b/modules/luci-base/po/no/base.po
@@ -594,7 +594,7 @@ msgstr "Kanal"
msgid "Check"
msgstr "Kontroller"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po
index 22902c4997..1a6538f2e5 100644
--- a/modules/luci-base/po/pl/base.po
+++ b/modules/luci-base/po/pl/base.po
@@ -611,7 +611,7 @@ msgstr "Kanał"
msgid "Check"
msgstr "Sprawdź"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po
index eef8ebac38..4d9a753a59 100644
--- a/modules/luci-base/po/pt-br/base.po
+++ b/modules/luci-base/po/pt-br/base.po
@@ -643,7 +643,7 @@ msgstr "Canal"
msgid "Check"
msgstr "Verificar"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
"Execute a verificação do sistema de arquivos antes da montagem do dispositivo"
diff --git a/modules/luci-base/po/pt/base.po b/modules/luci-base/po/pt/base.po
index aadccccc39..18c70793d3 100644
--- a/modules/luci-base/po/pt/base.po
+++ b/modules/luci-base/po/pt/base.po
@@ -607,7 +607,7 @@ msgstr "Canal"
msgid "Check"
msgstr "Verificar"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po
index 029b3958f9..25ada006d4 100644
--- a/modules/luci-base/po/ro/base.po
+++ b/modules/luci-base/po/ro/base.po
@@ -590,7 +590,7 @@ msgstr "Canal"
msgid "Check"
msgstr "Verificare"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po
index 9a3cf434fc..54925e6f66 100644
--- a/modules/luci-base/po/ru/base.po
+++ b/modules/luci-base/po/ru/base.po
@@ -607,7 +607,7 @@ msgstr "Канал"
msgid "Check"
msgstr "Проверить"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/sk/base.po b/modules/luci-base/po/sk/base.po
index 82fd38949b..4ce56eb3e9 100644
--- a/modules/luci-base/po/sk/base.po
+++ b/modules/luci-base/po/sk/base.po
@@ -576,7 +576,7 @@ msgstr ""
msgid "Check"
msgstr ""
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/sv/base.po b/modules/luci-base/po/sv/base.po
index 3360ccb230..fb3eb7b419 100644
--- a/modules/luci-base/po/sv/base.po
+++ b/modules/luci-base/po/sv/base.po
@@ -588,7 +588,7 @@ msgstr "Kanal"
msgid "Check"
msgstr "Kontrollera"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr "Kontrollera filsystemen innan de monteras"
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/templates/base.pot b/modules/luci-base/po/templates/base.pot
index 1c21925fcd..4737604e3b 100644
--- a/modules/luci-base/po/templates/base.pot
+++ b/modules/luci-base/po/templates/base.pot
@@ -569,7 +569,7 @@ msgstr ""
msgid "Check"
msgstr ""
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/tr/base.po b/modules/luci-base/po/tr/base.po
index 334ef00536..d0c18f2743 100644
--- a/modules/luci-base/po/tr/base.po
+++ b/modules/luci-base/po/tr/base.po
@@ -589,7 +589,7 @@ msgstr ""
msgid "Check"
msgstr ""
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po
index de7259b5d4..d0157e12e6 100644
--- a/modules/luci-base/po/uk/base.po
+++ b/modules/luci-base/po/uk/base.po
@@ -616,7 +616,7 @@ msgstr "Канал"
msgid "Check"
msgstr "Перевірити"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/vi/base.po b/modules/luci-base/po/vi/base.po
index 48f6b73e82..988938f554 100644
--- a/modules/luci-base/po/vi/base.po
+++ b/modules/luci-base/po/vi/base.po
@@ -583,7 +583,7 @@ msgstr "Kênh"
msgid "Check"
msgstr ""
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/zh-cn/base.po b/modules/luci-base/po/zh-cn/base.po
index f516d42942..42d1dd7741 100644
--- a/modules/luci-base/po/zh-cn/base.po
+++ b/modules/luci-base/po/zh-cn/base.po
@@ -585,7 +585,7 @@ msgstr "信道"
msgid "Check"
msgstr "检查"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr "在挂载前检查文件系统"
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-base/po/zh-tw/base.po b/modules/luci-base/po/zh-tw/base.po
index c0abad2a76..924d8b4aa5 100644
--- a/modules/luci-base/po/zh-tw/base.po
+++ b/modules/luci-base/po/zh-tw/base.po
@@ -588,7 +588,7 @@ msgstr "頻道"
msgid "Check"
msgstr "檢查"
-msgid "Check fileystems before mount"
+msgid "Check filesystems before mount"
msgstr ""
msgid "Check this option to delete the existing networks from this radio."
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua
index 83fdaadcbb..1cbd181919 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua
@@ -57,8 +57,8 @@ if fs.access("/etc/init.d/dsl_control") then
ds_snr = dsl:option(ListValue, "ds_snr_offset", translate("Downstream SNR offset"))
ds_snr:depends("line_mode", "adsl")
- for i = -50, 50, 5 do
- ds_snr:value(i, translate("%.1f dB" %{ i / 10} ))
+ for i = -100, 100, 5 do
+ ds_snr:value(i, translatef("%.1f dB", i / 10))
end
end
diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/fstab.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/fstab.lua
index fd466d5c26..3ce5351bf0 100644
--- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/fstab.lua
+++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/fstab.lua
@@ -62,7 +62,7 @@ o = s:option(Flag, "auto_mount", translate("Automount Filesystem"), translate("A
o.default = o.enabled
o.rmempty = false
-o = s:option(Flag, "check_fs", translate("Check fileystems before mount"), translate("Automatically check filesystem for errors before mounting"))
+o = s:option(Flag, "check_fs", translate("Check filesystems before mount"), translate("Automatically check filesystem for errors before mounting"))
o.default = o.disabled
o.rmempty = false
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/lease_status.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/lease_status.htm
index b4baedff28..ea6ee91c71 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_network/lease_status.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/lease_status.htm
@@ -78,15 +78,16 @@
tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
var host = hosts[duid2mac(st[1][i].duid)];
- if (host)
- tr.insertCell(-1).innerHTML = String.format(
- '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis">%s</div>',
- ((host.name && (host.ipv4 || host.ipv6))
- ? '%h (%s)'.format(host.name, host.ipv4 || host.ipv6)
- : '%h'.format(host.name || host.ipv4 || host.ipv6)).nobr()
- );
+ if (!st[1][i].hostname)
+ tr.insertCell(-1).innerHTML =
+ (host && (host.name || host.ipv4 || host.ipv6))
+ ? '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap">? (%h)</div>'.format(host.name || host.ipv4 || host.ipv6)
+ : '?';
else
- tr.insertCell(-1).innerHTML = st[1][i].hostname ? st[1][i].hostname : '?';
+ tr.insertCell(-1).innerHTML =
+ (host && host.name && st[1][i].hostname != host.name)
+ ? '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap">%h (%h)</div>'.format(st[1][i].hostname, host.name)
+ : st[1][i].hostname;
tr.insertCell(-1).innerHTML = st[1][i].ip6addr;
tr.insertCell(-1).innerHTML = st[1][i].duid;
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
index d29a894276..18f66c2a82 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
@@ -38,7 +38,7 @@
local wan6 = ntm:get_wan6net()
local conn_count = tonumber(
- fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count")) or 0
+ fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count") or "") or 0
local conn_max = tonumber((
luci.sys.exec("sysctl net.nf_conntrack_max") or
@@ -417,15 +417,16 @@
tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1);
var host = hosts[duid2mac(info.leases6[i].duid)];
- if (host)
- tr.insertCell(-1).innerHTML = String.format(
- '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis">%s</div>',
- ((host.name && (host.ipv4 || host.ipv6))
- ? '%h (%s)'.format(host.name, host.ipv4 || host.ipv6)
- : '%h'.format(host.name || host.ipv4 || host.ipv6)).nobr()
- );
+ if (!info.leases6[i].hostname)
+ tr.insertCell(-1).innerHTML =
+ (host && (host.name || host.ipv4 || host.ipv6))
+ ? '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap">? (%h)</div>'.format(host.name || host.ipv4 || host.ipv6)
+ : '?';
else
- tr.insertCell(-1).innerHTML = info.leases6[i].hostname ? info.leases6[i].hostname : '?';
+ tr.insertCell(-1).innerHTML =
+ (host && host.name && info.leases6[i].hostname != host.name)
+ ? '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap">%h (%h)</div>'.format(info.leases6[i].hostname, host.name)
+ : info.leases6[i].hostname;
tr.insertCell(-1).innerHTML = info.leases6[i].ip6addr;
tr.insertCell(-1).innerHTML = info.leases6[i].duid;