Software /
code /
prosody
Comparison
plugins/mod_bosh.lua @ 10111:0f335815244f
plugins: Remove tostring call from logging
Taken care of by loggingmanager now
Mass-rewrite using lua pattern like `tostring%b()`
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 30 Jul 2019 02:29:36 +0200 |
parent | 9990:f122972b77b2 |
child | 10377:4c36bc28b99e |
comparison
equal
deleted
inserted
replaced
10110:3fa3872588a8 | 10111:0f335815244f |
---|---|
76 measure_inactive(inactive); | 76 measure_inactive(inactive); |
77 end); | 77 end); |
78 | 78 |
79 -- Used to respond to idle sessions (those with waiting requests) | 79 -- Used to respond to idle sessions (those with waiting requests) |
80 function on_destroy_request(request) | 80 function on_destroy_request(request) |
81 log("debug", "Request destroyed: %s", tostring(request)); | 81 log("debug", "Request destroyed: %s", request); |
82 local session = sessions[request.context.sid]; | 82 local session = sessions[request.context.sid]; |
83 if session then | 83 if session then |
84 local requests = session.requests; | 84 local requests = session.requests; |
85 for i, r in ipairs(requests) do | 85 for i, r in ipairs(requests) do |
86 if r == request then | 86 if r == request then |
113 sm_destroy_session(session, reason); | 113 sm_destroy_session(session, reason); |
114 end | 114 end |
115 end | 115 end |
116 | 116 |
117 function handle_POST(event) | 117 function handle_POST(event) |
118 log("debug", "Handling new request %s: %s\n----------", tostring(event.request), tostring(event.request.body)); | 118 log("debug", "Handling new request %s: %s\n----------", event.request, event.request.body); |
119 | 119 |
120 local request, response = event.request, event.response; | 120 local request, response = event.request, event.response; |
121 response.on_destroy = on_destroy_request; | 121 response.on_destroy = on_destroy_request; |
122 local body = request.body; | 122 local body = request.body; |
123 | 123 |
222 | 222 |
223 local function bosh_reset_stream(session) session.notopen = true; end | 223 local function bosh_reset_stream(session) session.notopen = true; end |
224 | 224 |
225 local stream_xmlns_attr = { xmlns = "urn:ietf:params:xml:ns:xmpp-streams" }; | 225 local stream_xmlns_attr = { xmlns = "urn:ietf:params:xml:ns:xmpp-streams" }; |
226 local function bosh_close_stream(session, reason) | 226 local function bosh_close_stream(session, reason) |
227 (session.log or log)("info", "BOSH client disconnected: %s", tostring((reason and reason.condition or reason) or "session close")); | 227 (session.log or log)("info", "BOSH client disconnected: %s", (reason and reason.condition or reason) or "session close"); |
228 | 228 |
229 local close_reply = st.stanza("body", { xmlns = xmlns_bosh, type = "terminate", | 229 local close_reply = st.stanza("body", { xmlns = xmlns_bosh, type = "terminate", |
230 ["xmlns:stream"] = xmlns_streams }); | 230 ["xmlns:stream"] = xmlns_streams }); |
231 | 231 |
232 | 232 |
247 end | 247 end |
248 elseif reason.name then -- a stanza | 248 elseif reason.name then -- a stanza |
249 close_reply = reason; | 249 close_reply = reason; |
250 end | 250 end |
251 end | 251 end |
252 log("info", "Disconnecting client, <stream:error> is: %s", tostring(close_reply)); | 252 log("info", "Disconnecting client, <stream:error> is: %s", close_reply); |
253 end | 253 end |
254 | 254 |
255 local response_body = tostring(close_reply); | 255 local response_body = tostring(close_reply); |
256 for _, held_request in ipairs(session.requests) do | 256 for _, held_request in ipairs(session.requests) do |
257 held_request:send(response_body); | 257 held_request:send(response_body); |
273 context.notopen = nil; -- Signals that we accept this opening tag | 273 context.notopen = nil; -- Signals that we accept this opening tag |
274 | 274 |
275 local to_host = nameprep(attr.to); | 275 local to_host = nameprep(attr.to); |
276 local wait = tonumber(attr.wait); | 276 local wait = tonumber(attr.wait); |
277 if not to_host then | 277 if not to_host then |
278 log("debug", "BOSH client tried to connect to invalid host: %s", tostring(attr.to)); | 278 log("debug", "BOSH client tried to connect to invalid host: %s", attr.to); |
279 report_bad_host(); | 279 report_bad_host(); |
280 local close_reply = st.stanza("body", { xmlns = xmlns_bosh, type = "terminate", | 280 local close_reply = st.stanza("body", { xmlns = xmlns_bosh, type = "terminate", |
281 ["xmlns:stream"] = xmlns_streams, condition = "improper-addressing" }); | 281 ["xmlns:stream"] = xmlns_streams, condition = "improper-addressing" }); |
282 response:send(tostring(close_reply)); | 282 response:send(tostring(close_reply)); |
283 return; | 283 return; |
284 end | 284 end |
285 if not rid or (not attr.wait or not wait or wait < 0 or wait % 1 ~= 0) then | 285 if not rid or (not attr.wait or not wait or wait < 0 or wait % 1 ~= 0) then |
286 log("debug", "BOSH client sent invalid rid or wait attributes: rid=%s, wait=%s", tostring(attr.rid), tostring(attr.wait)); | 286 log("debug", "BOSH client sent invalid rid or wait attributes: rid=%s, wait=%s", attr.rid, attr.wait); |
287 local close_reply = st.stanza("body", { xmlns = xmlns_bosh, type = "terminate", | 287 local close_reply = st.stanza("body", { xmlns = xmlns_bosh, type = "terminate", |
288 ["xmlns:stream"] = xmlns_streams, condition = "bad-request" }); | 288 ["xmlns:stream"] = xmlns_streams, condition = "bad-request" }); |
289 response:send(tostring(close_reply)); | 289 response:send(tostring(close_reply)); |
290 return; | 290 return; |
291 end | 291 end |
327 if s.attr and not s.attr.xmlns then | 327 if s.attr and not s.attr.xmlns then |
328 s = st.clone(s); | 328 s = st.clone(s); |
329 s.attr.xmlns = "jabber:client"; | 329 s.attr.xmlns = "jabber:client"; |
330 end | 330 end |
331 s = filter("stanzas/out", s); | 331 s = filter("stanzas/out", s); |
332 --log("debug", "Sending BOSH data: %s", tostring(s)); | 332 --log("debug", "Sending BOSH data: %s", s); |
333 if not s then return true end | 333 if not s then return true end |
334 t_insert(session.send_buffer, tostring(s)); | 334 t_insert(session.send_buffer, tostring(s)); |
335 | 335 |
336 local oldest_request = r[1]; | 336 local oldest_request = r[1]; |
337 if oldest_request and not session.bosh_processing then | 337 if oldest_request and not session.bosh_processing then |
430 session.send(features); | 430 session.send(features); |
431 session.notopen = nil; | 431 session.notopen = nil; |
432 end | 432 end |
433 end | 433 end |
434 | 434 |
435 local function handleerr(err) log("error", "Traceback[bosh]: %s", traceback(tostring(err), 2)); end | 435 local function handleerr(err) log("error", "Traceback[bosh]: %s", traceback(err, 2)); end |
436 | 436 |
437 function runner_callbacks:error(err) -- luacheck: ignore 212/self | 437 function runner_callbacks:error(err) -- luacheck: ignore 212/self |
438 return handleerr(err); | 438 return handleerr(err); |
439 end | 439 end |
440 | 440 |