Comparison

mod_cache_c2s_caps/mod_cache_c2s_caps.lua @ 3111:7a3ac037e57f

mod_cache_c2s_caps: Fix traceback on invalid payload in disco#info result.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Fri, 08 Jun 2018 21:59:42 +0200
parent 3080:b003d72d9ce6
child 3454:c424bfb927b1
comparison
equal deleted inserted replaced
3110:06e07b483805 3111:7a3ac037e57f
8 -- Some clients (*ahem* poezio…) don’t include the @node in their result iq. 8 -- Some clients (*ahem* poezio…) don’t include the @node in their result iq.
9 local iq_node_map = {} 9 local iq_node_map = {}
10 10
11 local function iq_result_handler(event) 11 local function iq_result_handler(event)
12 local origin, stanza = event.origin, event.stanza; 12 local origin, stanza = event.origin, event.stanza;
13
14 local query = stanza:get_child("query", "http://jabber.org/protocol/disco#info");
15 if not query then
16 origin.log("debug", "Wrong iq payload in disco#info result: %s", stanza);
17 return;
18 end
19
13 local from = stanza.attr.from; 20 local from = stanza.attr.from;
14 local id = stanza.attr.id; 21 local id = stanza.attr.id;
15
16 local query = stanza:get_child("query", "http://jabber.org/protocol/disco#info");
17
18 local node_string = query.attr.node; 22 local node_string = query.attr.node;
19 local node_query = iq_node_map[from..id]; 23 local node_query = iq_node_map[from..id];
20 if node_string == nil then 24 if node_string == nil then
21 node_string = node_query; 25 node_string = node_query;
22 query.attr.node = node_query; 26 query.attr.node = node_query;