Diff

plugins/mod_admin_telnet.lua @ 4645:4539e99be743

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)
author Matthew Wild <mwild1@gmail.com>
date Sat, 21 Apr 2012 20:39:21 +0100
parent 4644:fb067c8a8d2e
child 4646:e0bd8587f2fb
line wrap: on
line diff
--- a/plugins/mod_admin_telnet.lua	Sat Apr 21 20:38:27 2012 +0100
+++ b/plugins/mod_admin_telnet.lua	Sat Apr 21 20:39:21 2012 +0100
@@ -334,11 +334,15 @@
 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