diff options
Diffstat (limited to 'modules')
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; |