Commit 4249d65a authored by bobcanthelpyou's avatar bobcanthelpyou

treewide: fix luacheck warnings

parent 80b6e7f1
......@@ -5,7 +5,7 @@ local file = '/etc/dropbear/authorized_keys'
local keys = {}
function load_keys()
local function load_keys()
for line in io.lines(file) do
keys[line] = true
end
......
......@@ -2,8 +2,6 @@ return function(form, uci)
local pkg_i18n = i18n 'gluon-config-mode-contact-info'
local site_i18n = i18n 'gluon-site'
local site = require 'gluon.site'
local owner = uci:get_first("gluon-node-info", "owner")
local help = site_i18n._translate("gluon-config-mode:contact-help") or pkg_i18n.translate(
......
......@@ -7,7 +7,8 @@ return function(form, uci)
local util = require 'gluon.util'
local selected_domain = uci:get('gluon', 'core', 'domain')
local configured = uci:get_first('gluon-setup-mode','setup_mode', 'configured') == '1' or (selected_domain ~= site.default_domain())
local configured = uci:get_first('gluon-setup-mode','setup_mode', 'configured') == '1' or
(selected_domain ~= site.default_domain())
local function hide_domain_code(domain, code)
if configured and code == selected_domain then
......
......@@ -9,7 +9,8 @@ M.MapValue = osm.MapValue
function M.help(i18n)
local pkg_i18n = i18n 'gluon-config-mode-geo-location-osm'
return pkg_i18n.translate(
'You may also select the position on the map displayed below if your computer is connected to the internet at the moment.'
'You may also select the position on the map displayed below '
.. 'if your computer is connected to the internet at the moment.'
)
end
......
......@@ -43,7 +43,7 @@ return function(form, uci)
end
end
local map = {}
local map
if osm then
map = s:option(osm.MapValue, "map", osm.options())
map:depends(share_location, true)
......@@ -56,7 +56,9 @@ return function(form, uci)
function o:write(data)
uci:set("gluon-node-info", location, "latitude", data)
end
map.lat = o
if osm then
map.lat = o
end
o = s:option(Value, "longitude", pkg_i18n.translate("Longitude"), pkg_i18n.translatef("e.g. %s", "10.689901"))
o.default = uci:get("gluon-node-info", location, "longitude")
......@@ -65,7 +67,9 @@ return function(form, uci)
function o:write(data)
uci:set("gluon-node-info", location, "longitude", data)
end
map.lon = o
if osm then
map.lon = o
end
if show_altitude then
o = s:option(Value, "altitude",
......
......@@ -14,7 +14,8 @@ return function(form, uci)
local current_hostname = pretty_hostname.get(uci)
local default_hostname = util.default_hostname()
local configured = uci:get_first('gluon-setup-mode', 'setup_mode', 'configured', false) or (current_hostname ~= default_hostname)
local configured = uci:get_first('gluon-setup-mode', 'setup_mode', 'configured', false) or
(current_hostname ~= default_hostname)
local s = form:section(Section)
local o = s:option(Value, "hostname", pkg_i18n.translate("Node name"))
......
......@@ -39,8 +39,8 @@ for _, config in ipairs({'wifi24', 'wifi5'}) do
elseif config == 'wifi5' then
local channels = {
34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
64, 96, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
120, 122, 124, 126, 128, 132, 134, 136, 138, 140, 142, 144,
64, 96, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
120, 122, 124, 126, 128, 132, 134, 136, 138, 140, 142, 144,
149, 151, 153, 155, 157, 159, 161, 165, 169, 173 }
need_one_of({config, 'channel'}, channels)
need_chanlist({config, 'outdoor_chanlist'}, channels, false)
......
......@@ -8,7 +8,6 @@ if sysconfig.lan_ifname or sysconfig.wan_ifname then
end
local util = require 'gluon.util'
local platform = require 'gluon.platform'
local site = require 'gluon.site'
......
......@@ -15,7 +15,7 @@ local sysconfig = require 'gluon.sysconfig'
local platform = require 'gluon.platform'
local config = site.wifi5.outdoors('preset')
local outdoor = false
local outdoor
if sysconfig.gluon_version then
-- don't enable the outdoor mode after an upgrade
......
......@@ -16,14 +16,12 @@ if not sysconfig.gluon_version then
-- capable of operating in the 2.4 GHz and 5 GHz band need
-- to be distributed evenly.
local radio_band_count = {band24=0, band5=0}
util.foreach_radio(uci, function(radio, index, config)
util.foreach_radio(uci, function(radio)
local hwmodes = iwinfo.nl80211.hwmodelist(util.find_phy(radio))
if (hwmodes.a or hwmodes.ac) and hwmodes.g then
-- Dualband - do nothing in this step
elseif hwmodes.g then
if hwmodes.g and not (hwmodes.a or hwmodes.ac) then
-- 2.4 GHz
radio_band_count["band24"] = radio_band_count["band24"] + 1
elseif hwmodes.a or hwmodes.ac then
elseif (hwmodes.a or hwmodes.ac) and not hwmodes.g then
-- 5 GHz
radio_band_count["band5"] = radio_band_count["band5"] + 1
end
......@@ -31,7 +29,7 @@ if not sysconfig.gluon_version then
-- Use the number of all fixed 2.4G GHz and 5 GHz radios to
-- distribute dualband radios in this step.
util.foreach_radio(uci, function(radio, index, config)
util.foreach_radio(uci, function(radio)
local radio_name = radio['.name']
local hwmodes = iwinfo.nl80211.hwmodelist(util.find_phy(radio))
if (hwmodes.a or hwmodes.ac) and hwmodes.g then
......
......@@ -46,7 +46,7 @@ for line in io.lines('/etc/opkg/distfeeds.conf') do
table.insert(distfeeds, line)
end
local f = io.open('/etc/opkg/distfeeds.conf', 'w')
f = io.open('/etc/opkg/distfeeds.conf', 'w')
for _, line in ipairs(distfeeds) do
local name = line:match('^src/gz%s' .. prefix .. '(%S+)%s')
......@@ -62,7 +62,7 @@ end
f:close()
if next(extra) then
local f = io.open('/etc/opkg/gluon.conf', 'w')
f = io.open('/etc/opkg/gluon.conf', 'w')
for k, v in pairs(extra) do
f:write(string.format('src/gz %s %s\n', k, replace_patterns(v)))
......
......@@ -85,10 +85,9 @@ function M.mac_to_ip(prefix, mac)
local h3 = 0x100 * m5 + tonumber(m6, 16)
local h4 = 0x100 * tonumber(m7, 16) + tonumber(m8, 16)
local prefix, plen = string.match(prefix, '(.*)/(%d+)')
plen = tonumber(plen, 10)
prefix = string.match(prefix, '(.*)/%d+')
local p1, p2, p3, p4, p5, p6, p7, p8 = M.IPv6(prefix)
local p1, p2, p3, p4 = M.IPv6(prefix)
return string.format("%x:%x:%x:%x:%x:%x:%x:%x/%d", p1, p2, p3, p4, h1, h2, h3, h4, 128)
end
......
......@@ -157,7 +157,7 @@ function M.find_phy(config)
end
end
local function get_addresses(uci, radio)
local function get_addresses(radio)
local phy = M.find_phy(radio)
if not phy then
return function() end
......@@ -200,11 +200,11 @@ function M.generate_mac(i)
return string.format('%02x:%s:%s:%s:%s:%02x', m1, m2, m3, m4, m5, m6)
end
local function get_wlan_mac_from_driver(uci, radio, vif)
local function get_wlan_mac_from_driver(radio, vif)
local primary = sysconfig.primary_mac:lower()
local addresses = {}
for address in get_addresses(uci, radio) do
for address in get_addresses(radio) do
if address:lower() ~= primary then
table.insert(addresses, address)
end
......@@ -222,8 +222,8 @@ local function get_wlan_mac_from_driver(uci, radio, vif)
end
end
function M.get_wlan_mac(uci, radio, index, vif)
local addr = get_wlan_mac_from_driver(uci, radio, vif)
function M.get_wlan_mac(_, radio, index, vif)
local addr = get_wlan_mac_from_driver(radio, vif)
if addr then
return addr
end
......
......@@ -3,7 +3,7 @@
local site = require 'gluon.site'
local babelconf='/etc/gluon-babeld.conf'
file = io.open(babelconf, "w")
local file = io.open(babelconf, "w")
file:write("ipv6-subtrees true\n")
file:write("reflect-kernel-metric true\n")
file:write("export-table 254\n")
......
......@@ -5,7 +5,6 @@
local site = require 'gluon.site'
local sysconfig = require 'gluon.sysconfig'
local util = require 'gluon.util'
local uci = require('simple-uci').cursor()
......@@ -39,7 +38,7 @@ local networks = uci:get_list('firewall', 'mesh', 'network')
util.add_to_set(networks, 'client')
uci:set_list('firewall', 'mesh', 'network', networks)
local networks = uci:get_list('firewall', 'drop', 'network')
networks = uci:get_list('firewall', 'drop', 'network')
util.remove_from_set(networks, 'client')
uci:set_list('firewall', 'drop', 'network', networks)
......
......@@ -2,7 +2,8 @@ local fastd_methods = {'salsa2012+gmac', 'salsa2012+umac', 'null+salsa2012+gmac'
need_array_of({'mesh_vpn', 'fastd', 'methods'}, fastd_methods)
need_boolean(in_site({'mesh_vpn', 'fastd', 'configurable'}), false)
need_one_of(in_site({'mesh_vpn', 'fastd', 'syslog_level'}), {'error', 'warn', 'info', 'verbose', 'debug', 'debug2'}, false)
need_one_of(in_site({'mesh_vpn', 'fastd', 'syslog_level'}),
{'error', 'warn', 'info', 'verbose', 'debug', 'debug2'}, false)
local function check_peer(k)
need_alphanumeric_key(k)
......
if need_table(in_domain({'domain_switch'}), check_domain_switch, false) then
if need_table(in_domain({'domain_switch'}), nil, false) then
need_domain_name(in_domain({'domain_switch', 'target_domain'}))
need_number(in_domain({'domain_switch', 'switch_after_offline_mins'}))
need_number(in_domain({'domain_switch', 'switch_time'}))
......
#!/usr/bin/lua
local json = require 'jsonc'
local site = require 'gluon.site'
local unistd = require 'posix.unistd'
local cronfile = "/usr/lib/micron.d/gluon-scheduled-domain-switch"
......
......@@ -6,7 +6,7 @@ local util = require 'gluon.util'
local site = require 'gluon.site'
-- Returns true if node was offline long enough to perform domain switch
function switch_after_min_reached()
local function switch_after_min_reached()
if not unistd.access("/tmp/gluon_offline") then
return false
end
......@@ -33,7 +33,7 @@ function switch_after_min_reached()
end
-- Returns true in case switch time has passed
function switch_time_passed()
local function switch_time_passed()
local current_time = os.time()
local switch_time = site.domain_switch.switch_time()
......
......@@ -15,10 +15,11 @@ package 'gluon-web-admin'
local util = require 'gluon.util'
local unistd = require 'posix.unistd'
local file
local tmpfile = "/tmp/firmware.img"
local function filehandler(meta, chunk, eof)
local function filehandler(_, chunk, eof)
if not unistd.access(tmpfile) and not file and chunk and #chunk > 0 then
file = io.open(tmpfile, "w")
end
......@@ -33,7 +34,6 @@ end
local function action_upgrade(http, renderer)
local fcntl = require 'posix.fcntl'
local stat = require 'posix.sys.stat'
local wait = require 'posix.sys.wait'
local function fork_exec(argv)
local pid = unistd.fork()
......@@ -63,15 +63,15 @@ local function action_upgrade(http, renderer)
end
end
local function image_supported(tmpfile)
return (os.execute(string.format("exec /sbin/sysupgrade -T %q >/dev/null", tmpfile)) == 0)
local function image_supported(supported_tmpfile)
return (os.execute(string.format("exec /sbin/sysupgrade -T %q >/dev/null", supported_tmpfile)) == 0)
end
local function storage_size()
local size = 0
if unistd.access("/proc/mtd") then
for l in io.lines("/proc/mtd") do
local d, s, e, n = l:match('^([^%s]+)%s+([^%s]+)%s+([^%s]+)%s+"([^%s]+)"')
local s, n = l:match('^[^%s]+%s+([^%s]+)%s+[^%s]+%s+"([^%s]+)"')
if n == "linux" then
size = tonumber(s, 16)
break
......@@ -79,7 +79,7 @@ local function action_upgrade(http, renderer)
end
elseif unistd.access("/proc/partitions") then
for l in io.lines("/proc/partitions") do
local x, y, b, n = l:match('^%s*(%d+)%s+(%d+)%s+([^%s]+)%s+([^%s]+)')
local b, n = l:match('^%s*%d+%s+%d+%s+([^%s]+)%s+([^%s]+)')
if b and n and not n:match('[0-9]') then
size = tonumber(b) * 1024
break
......@@ -89,8 +89,8 @@ local function action_upgrade(http, renderer)
return size
end
local function image_checksum(tmpfile)
return (util.exec(string.format("exec sha256sum %q", tmpfile)):match("^([^%s]+)"))
local function image_checksum(checksum_tmpfile)
return (util.exec(string.format("exec sha256sum %q", checksum_tmpfile)):match("^([^%s]+)"))
end
......
......@@ -57,7 +57,7 @@ local f_password = Form(translate("Password"), translate(
)
f_password.reset = false
local s = f_password:section(Section)
s = f_password:section(Section)
local pw1 = s:option(Value, "pw1", translate("Password"))
pw1.password = true
......
......@@ -22,18 +22,18 @@ function mode:write(data)
-- methods will be recreated and filled with the original values from site.mesh_vpn.fastd.methods
-- if performance mode was selected, and the method 'null' was not present in the original table, it will be added
local methods = {}
local site_methods = {}
if data == 'performance' then
table.insert(methods, 'null')
table.insert(site_methods, 'null')
end
for _, method in ipairs(site.mesh_vpn.fastd.methods()) do
if method ~= 'null' then
table.insert(methods, method)
table.insert(site_methods, method)
end
end
uci:set('fastd', 'mesh_vpn', 'method', methods)
uci:set('fastd', 'mesh_vpn', 'method', site_methods)
uci:save('fastd')
uci:commit('fastd')
......
......@@ -13,7 +13,7 @@ local function load(filename, i18n)
local func = assert(loadfile(filename))
setfenv(func, setmetatable({}, {__index =
function(tbl, key)
function(_, key)
return classes[key] or i18n[key] or _G[key]
end
}))
......
......@@ -145,7 +145,7 @@ function AbstractValue:depends(field, value)
table.insert(self.deps, deps)
end
function AbstractValue:deplist(section, deplist)
function AbstractValue:deplist(_, deplist)
local deps = {}
for _, d in ipairs(deplist or self.deps) do
......@@ -257,7 +257,8 @@ function AbstractValue:handle()
end
end
function AbstractValue:write(value)
-- will be overridden: write(value)
function AbstractValue:write()
end
......
......@@ -42,7 +42,7 @@ ipv4_gateway.default = wan.gateway
ipv4_gateway.datatype = "ip4addr"
local s = f:section(Section)
s = f:section(Section)
local ipv6 = s:option(ListValue, "ipv6", translate("IPv6"))
ipv6:value("dhcpv6", translate("Automatic (RA/DHCPv6)"))
......@@ -61,7 +61,7 @@ ipv6_gateway.default = wan6.ip6gw
ipv6_gateway.datatype = "ip6addr"
if dns_static then
local s = f:section(Section)
s = f:section(Section)
local dns = s:option(DynamicList, "dns", translate("Static DNS servers"))
dns.default = uci:get_list("gluon-wan-dnsmasq", dns_static, "server")
......@@ -74,7 +74,7 @@ if dns_static then
end
end
local s = f:section(Section)
s = f:section(Section)
local mesh_wan = s:option(Flag, "mesh_wan", translate("Enable meshing on the WAN interface"))
mesh_wan.default = not uci:get_bool("network", "mesh_wan", "disabled")
......@@ -84,7 +84,7 @@ function mesh_wan:write(data)
end
if sysconfig.lan_ifname then
local s = f:section(Section)
s = f:section(Section)
local mesh_lan = s:option(Flag, "mesh_lan", translate("Enable meshing on the LAN interface"))
mesh_lan.default = not uci:get_bool("network", "mesh_lan", "disabled")
......@@ -107,24 +107,24 @@ if sysconfig.lan_ifname then
end
local section
uci:foreach("system", "gpio_switch", function(s)
if s[".name"]:match("poe") then
uci:foreach("system", "gpio_switch", function(si)
if si[".name"]:match("poe") then
if not section then
section = f:section(Section)
end
local port = s.name:match("^PoE Power Port(%d*)$")
local port = si.name:match("^PoE Power Port(%d*)$")
local name
if port then
name = translatef("Enable PoE Power Port %s", port)
else
name = translate("Enable " .. s.name)
name = translate("Enable " .. si.name)
end
local poe = section:option(Flag, s[".name"], name)
poe.default = uci:get_bool("system", s[".name"], "value")
local poe = section:option(Flag, si[".name"], name)
poe.default = uci:get_bool("system", si[".name"], "value")
function poe:write(data)
uci:set("system", s[".name"], "value", data)
uci:set("system", si[".name"], "value", data)
end
end
end)
......
......@@ -17,8 +17,8 @@ s = f:section(Section, nil, translate(
o = s:option(ListValue, "role", translate("Role"))
o.default = role
for _, role in ipairs(site.roles.list()) do
o:value(role, site_i18n.translate('gluon-web-node-role:role:' .. role))
for _, role_value in ipairs(site.roles.list()) do
o:value(role, site_i18n.translate('gluon-web-node-role:role:' .. role_value))
end
function o:write(data)
......
local iwinfo = require 'iwinfo'
local site = require 'gluon.site'
local uci = require("simple-uci").cursor()
local util = require 'gluon.util'
......@@ -158,7 +157,7 @@ end
function f:write()
uci:commit('gluon')
os.execute('/lib/gluon/upgrade/200-wireless')
os.execute('/lib/gluon/upgrade/200-wireless')
uci:commit('wireless')
end
......
......@@ -109,8 +109,8 @@ local function dispatch(config, http, request)
return _node({...})
end,
entry = function(path, target, title, order)
local c = _node(path, true)
entry = function(entry_path, target, title, order)
local c = _node(entry_path, true)
c.target = target
c.title = title
......@@ -204,7 +204,7 @@ return function(config, http)
table.insert(request, node)
end
ok, err = pcall(dispatch, config, http, request)
local ok, err = pcall(dispatch, config, http, request)
if not ok then
http:status(500, "Internal Server Error")
http:prepare_content("text/plain")
......
......@@ -53,7 +53,7 @@ end
function Http:getcookie(name)
local c = string.gsub(";" .. (self:getenv("HTTP_COOKIE") or "") .. ";", "%s*;%s*", ";")
local p = ";" .. name .. "=(.-);"
local i, j, value = c:find(p)
local _, _, value = c:find(p)
return value and protocol.urldecode(value)
end
......
......@@ -124,13 +124,13 @@ local function mimedecode_message_body(src, msg, filecb)
local store = nil
local lchunk = nil
local function parse_headers(chunk, field)
local function parse_headers(chunk, pfield)
local stat
repeat
chunk, stat = chunk:gsub(
"^([A-Z][A-Za-z0-9%-_]+): +([^\r\n]+)\r\n",
function(k,v)
field.headers[k] = v
pfield.headers[k] = v
return ""
end
)
......@@ -140,26 +140,26 @@ local function mimedecode_message_body(src, msg, filecb)
-- End of headers
if stat > 0 then
if field.headers["Content-Disposition"] then
if field.headers["Content-Disposition"]:match("^form%-data; ") then
field.name = field.headers["Content-Disposition"]:match('name="(.-)"')
field.file = field.headers["Content-Disposition"]:match('filename="(.+)"$')
if pfield.headers["Content-Disposition"] then
if pfield.headers["Content-Disposition"]:match("^form%-data; ") then
pfield.name = pfield.headers["Content-Disposition"]:match('name="(.-)"')
pfield.file = pfield.headers["Content-Disposition"]:match('filename="(.+)"$')
end
end
if not field.headers["Content-Type"] then
field.headers["Content-Type"] = "text/plain"
if not pfield.headers["Content-Type"] then
pfield.headers["Content-Type"] = "text/plain"
end
if field.name then
initval(msg.params, field.name)
if field.file then
appendval(msg.params, field.name, field.file)
if pfield.name then
initval(msg.params, pfield.name)
if pfield.file then
appendval(msg.params, pfield.name, pfield.file)
store = filecb
else
store = function(hdr, buf, eof)
appendval(msg.params, field.name, buf)
store = function(_, buf, _)
appendval(msg.params, pfield.name, buf)
end
end
else
......@@ -197,6 +197,7 @@ local function mimedecode_message_body(src, msg, filecb)
if spos then
local predata = data:sub(1, spos - 1)
local eof
if inhdr then
predata, eof = parse_headers(predata, field)
......@@ -225,11 +226,12 @@ local function mimedecode_message_body(src, msg, filecb)
-- We found at least some boundary. Save
-- the unparsed remaining data for the
-- next chunk.
lchunk, data = data, nil