Comparison

core/hostmanager.lua @ 3599:adc0b4df6fdd

hostmanager: Added function get_children(host) which copies componentmanager.get_children(host).
author Waqas Hussain <waqas20@gmail.com>
date Wed, 10 Nov 2010 20:28:20 +0500
parent 3597:8090880f0e18
child 3601:829e23b374cc
comparison
equal deleted inserted replaced
3598:48ebea937260 3599:adc0b4df6fdd
7 -- 7 --
8 8
9 local configmanager = require "core.configmanager"; 9 local configmanager = require "core.configmanager";
10 local modulemanager = require "core.modulemanager"; 10 local modulemanager = require "core.modulemanager";
11 local events_new = require "util.events".new; 11 local events_new = require "util.events".new;
12 local disco_items = require "util.multitable".new();
13 local NULL = {};
12 14
13 local uuid_gen = require "util.uuid".generate; 15 local uuid_gen = require "util.uuid".generate;
14 16
15 local log = require "util.logger".init("hostmanager"); 17 local log = require "util.logger".init("hostmanager");
16 18
67 end 69 end
68 else -- component 70 else -- component
69 host_session.type = "component"; 71 host_session.type = "component";
70 end 72 end
71 hosts[host] = host_session; 73 hosts[host] = host_session;
74 disco_items:set(host:match("%.(.*)") or "*", host, true);
72 for option_name in pairs(host_config.core) do 75 for option_name in pairs(host_config.core) do
73 if option_name:match("_ports$") or option_name:match("_interface$") then 76 if option_name:match("_ports$") or option_name:match("_interface$") then
74 log("warn", "%s: Option '%s' has no effect for virtual hosts - put it in the server-wide section instead", host, option_name); 77 log("warn", "%s: Option '%s' has no effect for virtual hosts - put it in the server-wide section instead", host, option_name);
75 end 78 end
76 end 79 end
117 modulemanager.unload(host, module); 120 modulemanager.unload(host, module);
118 end 121 end
119 end 122 end
120 123
121 hosts[host] = nil; 124 hosts[host] = nil;
125 disco_items:remove(host:match("%.(.*)") or "*", host);
122 prosody_events.fire_event("host-deactivated", host); 126 prosody_events.fire_event("host-deactivated", host);
123 log("info", "Deactivated host: %s", host); 127 log("info", "Deactivated host: %s", host);
124 end 128 end
125 129
126 function getconfig(name) 130 function get_children(host)
131 return disco_items:get(host) or NULL;
127 end 132 end
128 133
129 return _M; 134 return _M;