comparison plugins/mod_c2s.lua @ 5720:449399a7e136

Merge
author Matthew Wild <mwild1@gmail.com>
date Sat, 29 Jun 2013 14:45:47 +0100
parents 9345c161481f
children cef2a1122b43
comparison
equal deleted inserted replaced
5719:84025249fc04 5720:449399a7e136
48 end 48 end
49 session.version = tonumber(attr.version) or 0; 49 session.version = tonumber(attr.version) or 0;
50 session.streamid = uuid_generate(); 50 session.streamid = uuid_generate();
51 (session.log or session)("debug", "Client sent opening <stream:stream> to %s", session.host); 51 (session.log or session)("debug", "Client sent opening <stream:stream> to %s", session.host);
52 52
53 if not hosts[session.host] then 53 if not hosts[session.host] or not hosts[session.host].modules.c2s then
54 -- We don't serve this host... 54 -- We don't serve this host...
55 session:close{ condition = "host-unknown", text = "This server does not serve "..tostring(session.host)}; 55 session:close{ condition = "host-unknown", text = "This server does not serve "..tostring(session.host)};
56 return; 56 return;
57 end 57 end
58 58
260 sm_destroy_session(session, err); 260 sm_destroy_session(session, err);
261 sessions[conn] = nil; 261 sessions[conn] = nil;
262 end 262 end
263 end 263 end
264 264
265 function listener.onreadtimeout(conn)
266 local session = sessions[conn];
267 if session then
268 return (hosts[session.host] or prosody).events.fire_event("c2s-read-timeout", { session = session });
269 end
270 end
271
272 local function keepalive(event)
273 return event.session.send(' ');
274 end
275
265 function listener.associate_session(conn, session) 276 function listener.associate_session(conn, session)
266 sessions[conn] = session; 277 sessions[conn] = session;
267 end 278 end
279
280 function module.add_host(module)
281 module:hook("c2s-read-timeout", keepalive, -1);
282 end
283
284 module:hook("c2s-read-timeout", keepalive, -1);
268 285
269 module:hook("server-stopping", function(event) 286 module:hook("server-stopping", function(event)
270 local reason = event.reason; 287 local reason = event.reason;
271 for _, session in pairs(sessions) do 288 for _, session in pairs(sessions) do
272 session:close{ condition = "system-shutdown", text = reason }; 289 session:close{ condition = "system-shutdown", text = reason };