From d05f7a417992dd0515253bedb2f2a5246b358d8e Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Sat, 30 May 2009 15:25:27 +0100 Subject: mod_console: c2s:show(), c2s:show_secure(), c2s:show_insecure() --- plugins/mod_console.lua | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'plugins') diff --git a/plugins/mod_console.lua b/plugins/mod_console.lua index 4b715b23..a95eb5dc 100644 --- a/plugins/mod_console.lua +++ b/plugins/mod_console.lua @@ -194,6 +194,53 @@ end function def_env.hosts:add(name) end +def_env.c2s = {}; + +local function show_c2s(callback) + for hostname, host in pairs(hosts) do + for username, user in pairs(host.sessions or {}) do + for resource, session in pairs(user.sessions or {}) do + local jid = username.."@"..hostname.."/"..resource; + callback(jid, session); + end + end + end +end + +function def_env.c2s:show(match_jid) + local print, count = self.session.print, 0; + show_c2s(function (jid) + if (not match_jid) or jid:match(match_jid) then + count = count + 1; + print(jid); + end + end); + return true, "Total: "..count.." clients"; +end + +function def_env.c2s:show_insecure(match_jid) + local print, count = self.session.print, 0; + show_c2s(function (jid, session) + if ((not match_jid) or jid:match(match_jid)) and not session.secure then + count = count + 1; + print(jid); + end + end); + return true, "Total: "..count.." insecure client connections"; +end + +function def_env.c2s:show_secure(match_jid) + local print, count = self.session.print, 0; + show_c2s(function (jid, session) + if ((not match_jid) or jid:match(match_jid)) and session.secure then + count = count + 1; + print(jid); + end + end); + return true, "Total: "..count.." secure client connections"; +end + + def_env.s2s = {}; function def_env.s2s:show(match_jid) local _print = self.session.print; -- cgit v1.2.3