Comparison

plugins/mod_bosh.lua @ 11868:ae093c259da2

mod_c2s,etc: Identify stanza object with appropriate function Better than duck typing, in case anyone ever passes a non-stanza table with a 'name' field.
author Kim Alvefur <zash@zash.se>
date Sun, 24 Oct 2021 15:17:01 +0200
parent 11808:c24580a214f3
child 12262:50525021c2c7
comparison
equal deleted inserted replaced
11867:bb20cfd4884f 11868:ae093c259da2
234 if reason then 234 if reason then
235 close_reply.attr.condition = "remote-stream-error"; 235 close_reply.attr.condition = "remote-stream-error";
236 if type(reason) == "string" then -- assume stream error 236 if type(reason) == "string" then -- assume stream error
237 close_reply:tag("stream:error") 237 close_reply:tag("stream:error")
238 :tag(reason, {xmlns = xmlns_xmpp_streams}); 238 :tag(reason, {xmlns = xmlns_xmpp_streams});
239 elseif st.is_stanza(reason) then
240 close_reply = reason;
239 elseif type(reason) == "table" then 241 elseif type(reason) == "table" then
240 if reason.condition then 242 if reason.condition then
241 close_reply:tag("stream:error") 243 close_reply:tag("stream:error")
242 :tag(reason.condition, stream_xmlns_attr):up(); 244 :tag(reason.condition, stream_xmlns_attr):up();
243 if reason.text then 245 if reason.text then
244 close_reply:tag("text", stream_xmlns_attr):text(reason.text):up(); 246 close_reply:tag("text", stream_xmlns_attr):text(reason.text):up();
245 end 247 end
246 if reason.extra then 248 if reason.extra then
247 close_reply:add_child(reason.extra); 249 close_reply:add_child(reason.extra);
248 end 250 end
249 elseif reason.name then -- a stanza
250 close_reply = reason;
251 end 251 end
252 end 252 end
253 log("info", "Disconnecting client, <stream:error> is: %s", close_reply); 253 log("info", "Disconnecting client, <stream:error> is: %s", close_reply);
254 end 254 end
255 255