Software /
code /
prosody
Comparison
plugins/mod_admin_telnet.lua @ 9404:f40b0cd41a87
mod_admin_telnet: Remove or rename various unused arguments and variables [luacheck]
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 30 Sep 2018 14:32:32 +0200 |
parent | 9403:4416c1a96400 |
child | 9405:86e3e37f25ff |
comparison
equal
deleted
inserted
replaced
9403:4416c1a96400 | 9404:f40b0cd41a87 |
---|---|
3 -- Copyright (C) 2008-2010 Waqas Hussain | 3 -- Copyright (C) 2008-2010 Waqas Hussain |
4 -- | 4 -- |
5 -- This project is MIT/X11 licensed. Please see the | 5 -- This project is MIT/X11 licensed. Please see the |
6 -- COPYING file in the source package for more information. | 6 -- COPYING file in the source package for more information. |
7 -- | 7 -- |
8 -- luacheck: ignore 212/self | |
8 | 9 |
9 module:set_global(); | 10 module:set_global(); |
10 | 11 |
11 local hostmanager = require "core.hostmanager"; | 12 local hostmanager = require "core.hostmanager"; |
12 local modulemanager = require "core.modulemanager"; | 13 local modulemanager = require "core.modulemanager"; |
33 local commands = module:shared("commands") | 34 local commands = module:shared("commands") |
34 local def_env = module:shared("env"); | 35 local def_env = module:shared("env"); |
35 local default_env_mt = { __index = def_env }; | 36 local default_env_mt = { __index = def_env }; |
36 | 37 |
37 local function redirect_output(target, session) | 38 local function redirect_output(target, session) |
38 local env = setmetatable({ print = session.print }, { __index = function (t, k) return rawget(target, k); end }); | 39 local env = setmetatable({ print = session.print }, { __index = function (_, k) return rawget(target, k); end }); |
39 env.dofile = function(name) | 40 env.dofile = function(name) |
40 local f, err = envloadfile(name, env); | 41 local f, err = envloadfile(name, env); |
41 if not f then return f, err; end | 42 if not f then return f, err; end |
42 return f(); | 43 return f(); |
43 end; | 44 end; |
161 session.send("\0"); | 162 session.send("\0"); |
162 return true; | 163 return true; |
163 end | 164 end |
164 end | 165 end |
165 | 166 |
166 function console_listener.ondisconnect(conn, err) | 167 function console_listener.ondisconnect(conn, err) -- luacheck: ignore 212/err |
167 local session = sessions[conn]; | 168 local session = sessions[conn]; |
168 if session then | 169 if session then |
169 session.disconnect(); | 170 session.disconnect(); |
170 sessions[conn] = nil; | 171 sessions[conn] = nil; |
171 end | 172 end |
359 | 360 |
360 function def_env.module:load(name, hosts, config) | 361 function def_env.module:load(name, hosts, config) |
361 hosts = get_hosts_set(hosts); | 362 hosts = get_hosts_set(hosts); |
362 | 363 |
363 -- Load the module for each host | 364 -- Load the module for each host |
364 local ok, err, count, mod = true, nil, 0, nil; | 365 local ok, err, count, mod = true, nil, 0; |
365 for host in hosts do | 366 for host in hosts do |
366 if (not modulemanager.is_loaded(host, name)) then | 367 if (not modulemanager.is_loaded(host, name)) then |
367 mod, err = modulemanager.load(host, name, config); | 368 mod, err = modulemanager.load(host, name, config); |
368 if not mod then | 369 if not mod then |
369 ok = false; | 370 ok = false; |
567 end):map(function (session) | 568 end):map(function (session) |
568 callback(get_jid(session), session) | 569 callback(get_jid(session), session) |
569 end); | 570 end); |
570 end | 571 end |
571 | 572 |
572 function def_env.c2s:count(match_jid) | 573 function def_env.c2s:count() |
573 return true, "Total: ".. iterators.count(values(module:shared"/*/c2s/sessions")) .." clients"; | 574 return true, "Total: ".. iterators.count(values(module:shared"/*/c2s/sessions")) .." clients"; |
574 end | 575 end |
575 | 576 |
576 function def_env.c2s:show(match_jid, annotate) | 577 function def_env.c2s:show(match_jid, annotate) |
577 local print, count = self.session.print, 0; | 578 local print, count = self.session.print, 0; |
651 local sess_lines = { l = localhost, r = remotehost, | 652 local sess_lines = { l = localhost, r = remotehost, |
652 annotate(session, { "", direction, remotehost or "?" })}; | 653 annotate(session, { "", direction, remotehost or "?" })}; |
653 | 654 |
654 if (not match_jid) or remotehost:match(match_jid) or localhost:match(match_jid) then | 655 if (not match_jid) or remotehost:match(match_jid) or localhost:match(match_jid) then |
655 table.insert(s2s_list, sess_lines); | 656 table.insert(s2s_list, sess_lines); |
657 -- luacheck: ignore 421/print | |
656 local print = function (s) table.insert(sess_lines, " "..s); end | 658 local print = function (s) table.insert(sess_lines, " "..s); end |
657 if session.sendq then | 659 if session.sendq then |
658 print("There are "..#session.sendq.." queued outgoing stanzas for this connection"); | 660 print("There are "..#session.sendq.." queued outgoing stanzas for this connection"); |
659 end | 661 end |
660 if session.type == "s2sout_unauthed" then | 662 if session.type == "s2sout_unauthed" then |
830 local print, count = self.session.print, 0; | 832 local print, count = self.session.print, 0; |
831 local s2s_sessions = module:shared"/*/s2s/sessions"; | 833 local s2s_sessions = module:shared"/*/s2s/sessions"; |
832 | 834 |
833 local match_id; | 835 local match_id; |
834 if from and not to then | 836 if from and not to then |
835 match_id, from = from; | 837 match_id, from = from, nil; |
836 elseif not to then | 838 elseif not to then |
837 return false, "Syntax: s2s:close('from', 'to') - Closes all s2s sessions from 'from' to 'to'"; | 839 return false, "Syntax: s2s:close('from', 'to') - Closes all s2s sessions from 'from' to 'to'"; |
838 elseif from == to then | 840 elseif from == to then |
839 return false, "Both from and to are the same... you can't do that :)"; | 841 return false, "Both from and to are the same... you can't do that :)"; |
840 end | 842 end |
915 | 917 |
916 function def_env.port:close(close_port, close_interface) | 918 function def_env.port:close(close_port, close_interface) |
917 close_port = assert(tonumber(close_port), "Invalid port number"); | 919 close_port = assert(tonumber(close_port), "Invalid port number"); |
918 local n_closed = 0; | 920 local n_closed = 0; |
919 local services = portmanager.get_active_services().data; | 921 local services = portmanager.get_active_services().data; |
920 for service, interfaces in pairs(services) do | 922 for service, interfaces in pairs(services) do -- luacheck: ignore 213 |
921 for interface, ports in pairs(interfaces) do | 923 for interface, ports in pairs(interfaces) do |
922 if not close_interface or close_interface == interface then | 924 if not close_interface or close_interface == interface then |
923 if ports[close_port] then | 925 if ports[close_port] then |
924 self.session.print("Closing ["..interface.."]:"..close_port.."..."); | 926 self.session.print("Closing ["..interface.."]:"..close_port.."..."); |
925 local ok, err = portmanager.close(interface, close_port) | 927 local ok, err = portmanager.close(interface, close_port) |
1149 events_obj = prosody.events; | 1151 events_obj = prosody.events; |
1150 end | 1152 end |
1151 return true, helpers.show_events(events_obj, event); | 1153 return true, helpers.show_events(events_obj, event); |
1152 end | 1154 end |
1153 | 1155 |
1154 function def_env.debug:timers(filter) | 1156 function def_env.debug:timers() |
1155 local socket = require "socket"; | 1157 local socket = require "socket"; |
1156 local print = self.session.print; | 1158 local print = self.session.print; |
1157 local add_task = require"util.timer".add_task; | 1159 local add_task = require"util.timer".add_task; |
1158 local h, params = add_task.h, add_task.params; | 1160 local h, params = add_task.h, add_task.params; |
1159 if h then | 1161 if h then |
1168 end | 1170 end |
1169 end | 1171 end |
1170 end | 1172 end |
1171 if server.event_base then | 1173 if server.event_base then |
1172 local count = 0; | 1174 local count = 0; |
1173 for k, v in pairs(debug.getregistry()) do | 1175 for _, v in pairs(debug.getregistry()) do |
1174 if type(v) == "function" and v.callback and v.callback == add_task._on_timer then | 1176 if type(v) == "function" and v.callback and v.callback == add_task._on_timer then |
1175 count = count + 1; | 1177 count = count + 1; |
1176 end | 1178 end |
1177 end | 1179 end |
1178 print(count .. " libevent callbacks"); | 1180 print(count .. " libevent callbacks"); |
1188 | 1190 |
1189 -- COMPAT: debug:timers() was timer:info() for some time in trunk | 1191 -- COMPAT: debug:timers() was timer:info() for some time in trunk |
1190 def_env.timer = { info = def_env.debug.timers }; | 1192 def_env.timer = { info = def_env.debug.timers }; |
1191 | 1193 |
1192 module:hook("server-stopping", function(event) | 1194 module:hook("server-stopping", function(event) |
1193 for conn, session in pairs(sessions) do | 1195 for _, session in pairs(sessions) do |
1194 session.print("Shutting down: "..(event.reason or "unknown reason")); | 1196 session.print("Shutting down: "..(event.reason or "unknown reason")); |
1195 end | 1197 end |
1196 end); | 1198 end); |
1197 | 1199 |
1198 def_env.stats = {}; | 1200 def_env.stats = {}; |
1223 return tostring(value); | 1225 return tostring(value); |
1224 end | 1226 end |
1225 | 1227 |
1226 local stats_methods = {}; | 1228 local stats_methods = {}; |
1227 function stats_methods:bounds(_lower, _upper) | 1229 function stats_methods:bounds(_lower, _upper) |
1228 local statistics = require "util.statistics"; | |
1229 for _, stat_info in ipairs(self) do | 1230 for _, stat_info in ipairs(self) do |
1230 local data = stat_info[4]; | 1231 local data = stat_info[4]; |
1231 if data then | 1232 if data then |
1232 local lower = _lower or data.min; | 1233 local lower = _lower or data.min; |
1233 local upper = _upper or data.max; | 1234 local upper = _upper or data.max; |
1238 sample_count = 0; | 1239 sample_count = 0; |
1239 count = data.count; | 1240 count = data.count; |
1240 units = data.units; | 1241 units = data.units; |
1241 }; | 1242 }; |
1242 local sum = 0; | 1243 local sum = 0; |
1243 for i, v in ipairs(data.samples) do | 1244 for _, v in ipairs(data.samples) do |
1244 if v > upper then | 1245 if v > upper then |
1245 break; | 1246 break; |
1246 elseif v>=lower then | 1247 elseif v>=lower then |
1247 table.insert(new_data.samples, v); | 1248 table.insert(new_data.samples, v); |
1248 sum = sum + v; | 1249 sum = sum + v; |
1270 sample_count = 0; | 1271 sample_count = 0; |
1271 count = data.count; | 1272 count = data.count; |
1272 units = data.units; | 1273 units = data.units; |
1273 }; | 1274 }; |
1274 local sum = 0; | 1275 local sum = 0; |
1275 for i, v in ipairs(data.samples) do | 1276 for _, v in ipairs(data.samples) do |
1276 if v > new_data.max then | 1277 if v > new_data.max then |
1277 break; | 1278 break; |
1278 elseif v>=new_data.min then | 1279 elseif v>=new_data.min then |
1279 table.insert(new_data.samples, v); | 1280 table.insert(new_data.samples, v); |
1280 sum = sum + v; | 1281 sum = sum + v; |
1414 local histogram = {}; | 1415 local histogram = {}; |
1415 for i = 1, n_buckets do | 1416 for i = 1, n_buckets do |
1416 histogram[i] = 0; | 1417 histogram[i] = 0; |
1417 end | 1418 end |
1418 local max_bin_samples = 0; | 1419 local max_bin_samples = 0; |
1419 for i, d in ipairs(data.samples) do | 1420 for _, d in ipairs(data.samples) do |
1420 local bucket = math.floor(1+(n_buckets-1)/(range/(d-data.min))); | 1421 local bucket = math.floor(1+(n_buckets-1)/(range/(d-data.min))); |
1421 histogram[bucket] = histogram[bucket] + 1; | 1422 histogram[bucket] = histogram[bucket] + 1; |
1422 if histogram[bucket] > max_bin_samples then | 1423 if histogram[bucket] > max_bin_samples then |
1423 max_bin_samples = histogram[bucket]; | 1424 max_bin_samples = histogram[bucket]; |
1424 end | 1425 end |
1471 local print = stats.session.print; | 1472 local print = stats.session.print; |
1472 for _, stat_info in ipairs(stats) do | 1473 for _, stat_info in ipairs(stats) do |
1473 if #stat_info.output > 0 then | 1474 if #stat_info.output > 0 then |
1474 print("\n#"..stat_info[1]); | 1475 print("\n#"..stat_info[1]); |
1475 print(""); | 1476 print(""); |
1476 for i, v in ipairs(stat_info.output) do | 1477 for _, v in ipairs(stat_info.output) do |
1477 print(v); | 1478 print(v); |
1478 end | 1479 end |
1479 print(""); | 1480 print(""); |
1480 else | 1481 else |
1481 print(("%-50s %s"):format(stat_info[1], format_stat(stat_info[2], stat_info[3]))); | 1482 print(("%-50s %s"):format(stat_info[1], format_stat(stat_info[2], stat_info[3]))); |
1487 local function new_stats_context(self) | 1488 local function new_stats_context(self) |
1488 return setmetatable({ session = self.session, stats = true }, {__index = stats_methods, __tostring = stats_tostring }); | 1489 return setmetatable({ session = self.session, stats = true }, {__index = stats_methods, __tostring = stats_tostring }); |
1489 end | 1490 end |
1490 | 1491 |
1491 function def_env.stats:show(filter) | 1492 function def_env.stats:show(filter) |
1492 local print = self.session.print; | |
1493 local stats, changed, extra = require "core.statsmanager".get_stats(); | 1493 local stats, changed, extra = require "core.statsmanager".get_stats(); |
1494 local available, displayed = 0, 0; | 1494 local available, displayed = 0, 0; |
1495 local displayed_stats = new_stats_context(self); | 1495 local displayed_stats = new_stats_context(self); |
1496 for name, value in pairs(stats) do | 1496 for name, value in pairs(stats) do |
1497 available = available + 1; | 1497 available = available + 1; |