modulemanager: Allow setting priority of stanza handlers
[prosody.git] / core / hostmanager.lua
index 64bb13f70d658b0866f1d5c883e7a41d8e6a0443..a72e5f61bd4f575f3d51cf3c6742c6ee68c69696 100644 (file)
@@ -2,6 +2,7 @@
 local hosts = hosts;
 local configmanager = require "core.configmanager";
 local eventmanager = require "core.eventmanager";
+local events_new = require "util.events".new;
 
 local log = require "util.logger".init("hostmanager");
 
@@ -9,6 +10,8 @@ local pairs = pairs;
 
 module "hostmanager"
 
+local hosts_loaded_once;
+
 local function load_enabled_hosts(config)
        local defined_hosts = config or configmanager.getconfig();
        
@@ -17,13 +20,15 @@ local function load_enabled_hosts(config)
                        activate(host, host_config);
                end
        end
+       eventmanager.fire_event("hosts-activated", defined_hosts);
+       hosts_loaded_once = true;
 end
 
 eventmanager.add_event_hook("server-starting", load_enabled_hosts);
 
 function activate(host, host_config)
-       hosts[host] = {type = "local", connected = true, sessions = {}, host = host, s2sout = {} };
-       log("info", "Activated host: %s", host);
+       hosts[host] = {type = "local", connected = true, sessions = {}, host = host, s2sout = {}, events = events_new() };
+       log((hosts_loaded_once and "info") or "debug", "Activated host: %s", host);
        eventmanager.fire_event("host-activated", host, host_config);
 end