diff options
author | Matthew Wild <mwild1@gmail.com> | 2012-04-21 20:39:21 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2012-04-21 20:39:21 +0100 |
commit | 726f3804c3ed5b4d0d3e94b3f4c860c30d76a500 (patch) | |
tree | b3e8eaf833f164141f71ff648c80057831ceea01 | |
parent | 18497219e053d2bc28798b27d6adc23b039cf3ec (diff) | |
download | prosody-726f3804c3ed5b4d0d3e94b3f4c860c30d76a500.tar.gz prosody-726f3804c3ed5b4d0d3e94b3f4c860c30d76a500.zip |
mod_admin_telnet: module:reload(): If module is loaded on *, reload it there first (ensuring shared module code is reloaded before per-host children of that module)
-rw-r--r-- | plugins/mod_admin_telnet.lua | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/plugins/mod_admin_telnet.lua b/plugins/mod_admin_telnet.lua index e60a2245..2f2e057b 100644 --- a/plugins/mod_admin_telnet.lua +++ b/plugins/mod_admin_telnet.lua @@ -334,11 +334,15 @@ end function def_env.module:reload(name, hosts) local mm = require "modulemanager"; - hosts = get_hosts_set(hosts, name); - + hosts = array.collect(get_hosts_set(hosts, name)):sort(function (a, b) + if a == "*" then return true + elseif b == "*" then return false + else return a < b; end + end); + -- Reload the module for each host local ok, err, count = true, nil, 0; - for host in hosts do + for _, host in ipairs(hosts) do if mm.is_loaded(host, name) then ok, err = mm.reload(host, name); if not ok then |