rostermanager: do not save rosters for unexistant users.
--- a/core/rostermanager.lua Fri Apr 05 04:49:32 2013 +0000
+++ b/core/rostermanager.lua Fri Apr 05 04:52:11 2013 +0000
@@ -18,6 +18,7 @@
local bare_sessions = bare_sessions;
local datamanager = require "util.datamanager"
+local um_user_exists = require "core.usermanager".user_exists;
local st = require "util.stanza";
module "rostermanager"
@@ -105,6 +106,11 @@
end
function save_roster(username, host, roster)
+ if not um_user_exists(username, host) then
+ log("debug", "not saving roster for %s@%s: the user doesn't exist", username, host);
+ return nil;
+ end
+
log("debug", "save_roster: saving roster for %s@%s", username, host);
if not roster then
roster = hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster;