Comparison

core/sessionmanager.lua @ 5776:bd0ff8ae98a8

Remove all trailing whitespace
author Florian Zeitz <florob@babelmonkeys.de>
date Fri, 09 Aug 2013 17:48:21 +0200
parent 5459:3a821511b9ec
child 6404:938cc782c14d
comparison
equal deleted inserted replaced
5775:a6c2b8933507 5776:bd0ff8ae98a8
1 -- Prosody IM 1 -- Prosody IM
2 -- Copyright (C) 2008-2010 Matthew Wild 2 -- Copyright (C) 2008-2010 Matthew Wild
3 -- Copyright (C) 2008-2010 Waqas Hussain 3 -- Copyright (C) 2008-2010 Waqas Hussain
4 -- 4 --
5 -- This project is MIT/X11 licensed. Please see the 5 -- This project is MIT/X11 licensed. Please see the
6 -- COPYING file in the source package for more information. 6 -- COPYING file in the source package for more information.
7 -- 7 --
8 8
9 local tostring, setmetatable = tostring, setmetatable; 9 local tostring, setmetatable = tostring, setmetatable;
42 end 42 end
43 end 43 end
44 session.ip = conn:ip(); 44 session.ip = conn:ip();
45 local conn_name = "c2s"..tostring(session):match("[a-f0-9]+$"); 45 local conn_name = "c2s"..tostring(session):match("[a-f0-9]+$");
46 session.log = logger.init(conn_name); 46 session.log = logger.init(conn_name);
47 47
48 return session; 48 return session;
49 end 49 end
50 50
51 local resting_session = { -- Resting, not dead 51 local resting_session = { -- Resting, not dead
52 destroyed = true; 52 destroyed = true;
71 end 71 end
72 72
73 function destroy_session(session, err) 73 function destroy_session(session, err)
74 (session.log or log)("debug", "Destroying session for %s (%s@%s)%s", session.full_jid or "(unknown)", session.username or "(unknown)", session.host or "(unknown)", err and (": "..err) or ""); 74 (session.log or log)("debug", "Destroying session for %s (%s@%s)%s", session.full_jid or "(unknown)", session.username or "(unknown)", session.host or "(unknown)", err and (": "..err) or "");
75 if session.destroyed then return; end 75 if session.destroyed then return; end
76 76
77 -- Remove session/resource from user's session list 77 -- Remove session/resource from user's session list
78 if session.full_jid then 78 if session.full_jid then
79 local host_session = hosts[session.host]; 79 local host_session = hosts[session.host];
80 80
81 -- Allow plugins to prevent session destruction 81 -- Allow plugins to prevent session destruction
82 if host_session.events.fire_event("pre-resource-unbind", {session=session, error=err}) then 82 if host_session.events.fire_event("pre-resource-unbind", {session=session, error=err}) then
83 return; 83 return;
84 end 84 end
85 85
86 host_session.sessions[session.username].sessions[session.resource] = nil; 86 host_session.sessions[session.username].sessions[session.resource] = nil;
87 full_sessions[session.full_jid] = nil; 87 full_sessions[session.full_jid] = nil;
88 88
89 if not next(host_session.sessions[session.username].sessions) then 89 if not next(host_session.sessions[session.username].sessions) then
90 log("debug", "All resources of %s are now offline", session.username); 90 log("debug", "All resources of %s are now offline", session.username);
91 host_session.sessions[session.username] = nil; 91 host_session.sessions[session.username] = nil;
92 bare_sessions[session.username..'@'..session.host] = nil; 92 bare_sessions[session.username..'@'..session.host] = nil;
93 end 93 end
94 94
95 host_session.events.fire_event("resource-unbind", {session=session, error=err}); 95 host_session.events.fire_event("resource-unbind", {session=session, error=err});
96 end 96 end
97 97
98 retire_session(session); 98 retire_session(session);
99 end 99 end
100 100
101 function make_authenticated(session, username) 101 function make_authenticated(session, username)
102 username = nodeprep(username); 102 username = nodeprep(username);
117 -- We don't support binding multiple resources 117 -- We don't support binding multiple resources
118 118
119 resource = resourceprep(resource); 119 resource = resourceprep(resource);
120 resource = resource ~= "" and resource or uuid_generate(); 120 resource = resource ~= "" and resource or uuid_generate();
121 --FIXME: Randomly-generated resources must be unique per-user, and never conflict with existing 121 --FIXME: Randomly-generated resources must be unique per-user, and never conflict with existing
122 122
123 if not hosts[session.host].sessions[session.username] then 123 if not hosts[session.host].sessions[session.username] then
124 local sessions = { sessions = {} }; 124 local sessions = { sessions = {} };
125 hosts[session.host].sessions[session.username] = sessions; 125 hosts[session.host].sessions[session.username] = sessions;
126 bare_sessions[session.username..'@'..session.host] = sessions; 126 bare_sessions[session.username..'@'..session.host] = sessions;
127 else 127 else
154 end 154 end
155 resource = resource.."#"..count; 155 resource = resource.."#"..count;
156 end 156 end
157 end 157 end
158 end 158 end
159 159
160 session.resource = resource; 160 session.resource = resource;
161 session.full_jid = session.username .. '@' .. session.host .. '/' .. resource; 161 session.full_jid = session.username .. '@' .. session.host .. '/' .. resource;
162 hosts[session.host].sessions[session.username].sessions[resource] = session; 162 hosts[session.host].sessions[session.username].sessions[resource] = session;
163 full_sessions[session.full_jid] = session; 163 full_sessions[session.full_jid] = session;
164 164
165 local err; 165 local err;
166 session.roster, err = rm_load_roster(session.username, session.host); 166 session.roster, err = rm_load_roster(session.username, session.host);
167 if err then 167 if err then
168 full_sessions[session.full_jid] = nil; 168 full_sessions[session.full_jid] = nil;
169 hosts[session.host].sessions[session.username].sessions[resource] = nil; 169 hosts[session.host].sessions[session.username].sessions[resource] = nil;
174 hosts[session.host].sessions[session.username] = nil; 174 hosts[session.host].sessions[session.username] = nil;
175 end 175 end
176 session.log("error", "Roster loading failed: %s", err); 176 session.log("error", "Roster loading failed: %s", err);
177 return nil, "cancel", "internal-server-error", "Error loading roster"; 177 return nil, "cancel", "internal-server-error", "Error loading roster";
178 end 178 end
179 179
180 hosts[session.host].events.fire_event("resource-bind", {session=session}); 180 hosts[session.host].events.fire_event("resource-bind", {session=session});
181 181
182 return true; 182 return true;
183 end 183 end
184 184
185 function send_to_available_resources(user, host, stanza) 185 function send_to_available_resources(user, host, stanza)
186 local jid = user.."@"..host; 186 local jid = user.."@"..host;