aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_admin_telnet.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2019-11-30 21:56:21 +0100
committerKim Alvefur <zash@zash.se>2019-11-30 21:56:21 +0100
commit3d63c139e666e1a89f5caa0eb96afc20ac43fc2a (patch)
treee4de327aaa8dfcbfbc8aaca4d9624a6f2ef6bf47 /plugins/mod_admin_telnet.lua
parentc02ddf92ec53dd2c0473ef98427ceb4020d1f001 (diff)
downloadprosody-3d63c139e666e1a89f5caa0eb96afc20ac43fc2a.tar.gz
prosody-3d63c139e666e1a89f5caa0eb96afc20ac43fc2a.zip
mod_admin_telnet: Sort hosts
Groups by domain in DNS hierarchy order or something. Why not split on '.' you ask? Well becasue that's not what I typed here. Also "[^.]" is longer than "%P".
Diffstat (limited to 'plugins/mod_admin_telnet.lua')
-rw-r--r--plugins/mod_admin_telnet.lua6
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/mod_admin_telnet.lua b/plugins/mod_admin_telnet.lua
index f3ab9597..8427f811 100644
--- a/plugins/mod_admin_telnet.lua
+++ b/plugins/mod_admin_telnet.lua
@@ -964,11 +964,15 @@ function def_env.host:deactivate(hostname, reason)
return hostmanager.deactivate(hostname, reason);
end
+local function compare_hosts(a, b)
+ return a:gsub("%P", string.reverse):reverse() < b:gsub("%P", string.reverse):reverse();
+end
+
function def_env.host:list()
local print = self.session.print;
local i = 0;
local type;
- for host, host_session in iterators.sorted_pairs(prosody.hosts) do
+ for host, host_session in iterators.sorted_pairs(prosody.hosts, compare_hosts) do
i = i + 1;
type = host_session.type;
if type == "local" then