Software / code / prosody
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; |