Merge with waqas
[prosody.git] / core / rostermanager.lua
index 867add2c1889b4b268f899f9f7c4fd93d473a590..0163e343a09c5540f9defeda4c607ebb3d7407e1 100644 (file)
@@ -1,4 +1,4 @@
--- Prosody IM v0.4
+-- Prosody IM
 -- Copyright (C) 2008-2009 Matthew Wild
 -- Copyright (C) 2008-2009 Waqas Hussain
 -- 
@@ -82,19 +82,24 @@ end
 
 function load_roster(username, host)
        log("debug", "load_roster: asked for: "..username.."@"..host);
+       local roster;
        if hosts[host] and hosts[host].sessions[username] then
-               local roster = hosts[host].sessions[username].roster;
+               roster = hosts[host].sessions[username].roster;
                if not roster then
                        log("debug", "load_roster: loading for new user: "..username.."@"..host);
                        roster = datamanager.load(username, host, "roster") or {};
                        if not roster[false] then roster[false] = { }; end
                        hosts[host].sessions[username].roster = roster;
+                       hosts[host].events.fire_event("roster-load", username, host, roster);
                end
                return roster;
        end
+       
        -- Attempt to load roster for non-loaded user
        log("debug", "load_roster: loading for offline user: "..username.."@"..host);
-       return datamanager.load(username, host, "roster") or {};
+       roster = datamanager.load(username, host, "roster") or {};
+       hosts[host].events.fire_event("roster-load", username, host, roster);
+       return roster;
 end
 
 function save_roster(username, host)