Software /
code /
prosody
Comparison
core/rostermanager.lua @ 2048:d420722519e1
rostermanager: Log a warning when a self-contact is detected.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Thu, 22 Oct 2009 03:38:00 +0500 |
parent | 2047:fb236904c959 |
child | 2049:227f3fd2caaf |
comparison
equal
deleted
inserted
replaced
2047:fb236904c959 | 2048:d420722519e1 |
---|---|
79 end | 79 end |
80 end | 80 end |
81 end | 81 end |
82 | 82 |
83 function load_roster(username, host) | 83 function load_roster(username, host) |
84 log("debug", "load_roster: asked for: "..username.."@"..host); | 84 local jid = username.."@"..host; |
85 log("debug", "load_roster: asked for: "..jid); | |
85 local roster; | 86 local roster; |
86 if hosts[host] and hosts[host].sessions[username] then | 87 if hosts[host] and hosts[host].sessions[username] then |
87 roster = hosts[host].sessions[username].roster; | 88 roster = hosts[host].sessions[username].roster; |
88 if not roster then | 89 if not roster then |
89 log("debug", "load_roster: loading for new user: "..username.."@"..host); | 90 log("debug", "load_roster: loading for new user: "..username.."@"..host); |
90 roster = datamanager.load(username, host, "roster") or {}; | 91 roster = datamanager.load(username, host, "roster") or {}; |
91 if not roster[false] then roster[false] = { }; end | 92 if not roster[false] then roster[false] = { }; end |
92 roster[username.."@"..host] = nil; | 93 if roster[jid] then |
94 roster[jid] = nil; | |
95 log("warn", "roster for "..jid.." has a self-contact"); | |
96 end | |
93 hosts[host].sessions[username].roster = roster; | 97 hosts[host].sessions[username].roster = roster; |
94 hosts[host].events.fire_event("roster-load", username, host, roster); | 98 hosts[host].events.fire_event("roster-load", username, host, roster); |
95 end | 99 end |
96 return roster; | 100 return roster; |
97 end | 101 end |
98 | 102 |
99 -- Attempt to load roster for non-loaded user | 103 -- Attempt to load roster for non-loaded user |
100 log("debug", "load_roster: loading for offline user: "..username.."@"..host); | 104 log("debug", "load_roster: loading for offline user: "..username.."@"..host); |
101 roster = datamanager.load(username, host, "roster") or {}; | 105 roster = datamanager.load(username, host, "roster") or {}; |
102 if not roster[false] then roster[false] = { }; end | 106 if not roster[false] then roster[false] = { }; end |
103 roster[username.."@"..host] = nil; | 107 if roster[jid] then |
108 roster[jid] = nil; | |
109 log("warn", "roster for "..jid.." has a self-contact"); | |
110 end | |
104 hosts[host].events.fire_event("roster-load", username, host, roster); | 111 hosts[host].events.fire_event("roster-load", username, host, roster); |
105 return roster; | 112 return roster; |
106 end | 113 end |
107 | 114 |
108 function save_roster(username, host, roster) | 115 function save_roster(username, host, roster) |