Comparison

plugins/mod_csi_simple.lua @ 10807:b92afa0a4119

mod_csi_simple: Add short reasons to report Should improve quality of debug logs
author Kim Alvefur <zash@zash.se>
date Thu, 07 May 2020 22:56:30 +0200
parent 10806:24e2b571d29a
child 10808:0d365c0ee9fe
comparison
equal deleted inserted replaced
10806:24e2b571d29a 10807:b92afa0a4119
20 -- whitespace pings etc 20 -- whitespace pings etc
21 return true; 21 return true;
22 end 22 end
23 if stanza.attr.xmlns ~= nil then 23 if stanza.attr.xmlns ~= nil then
24 -- stream errors, stream management etc 24 -- stream errors, stream management etc
25 return true; 25 return true, "nonza";
26 end 26 end
27 local st_name = stanza.name; 27 local st_name = stanza.name;
28 if not st_name then return false; end 28 if not st_name then return false; end
29 local st_type = stanza.attr.type; 29 local st_type = stanza.attr.type;
30 if st_name == "presence" then 30 if st_name == "presence" then
31 if st_type == nil or st_type == "unavailable" or st_name == "error" then 31 if st_type == nil or st_type == "unavailable" or st_name == "error" then
32 return false; 32 return false, "presence update";
33 end 33 end
34 -- TODO Some MUC awareness, e.g. check for the 'this relates to you' status code 34 -- TODO Some MUC awareness, e.g. check for the 'this relates to you' status code
35 return true; 35 return true, "subscription request";
36 elseif st_name == "message" then 36 elseif st_name == "message" then
37 if st_type == "headline" then 37 if st_type == "headline" then
38 return false; 38 -- Headline messages are ephemeral by definition
39 return false, "headline";
39 end 40 end
40 if st_type == "error" then 41 if st_type == "error" then
41 return true; 42 return true, "delivery failure";
42 end 43 end
43 if stanza:get_child("sent", "urn:xmpp:carbons:2") then 44 if stanza:get_child("sent", "urn:xmpp:carbons:2") then
44 return true; 45 return true, "carbon";
45 end 46 end
46 local forwarded = stanza:find("{urn:xmpp:carbons:2}received/{urn:xmpp:forward:0}/{jabber:client}message"); 47 local forwarded = stanza:find("{urn:xmpp:carbons:2}received/{urn:xmpp:forward:0}/{jabber:client}message");
47 if forwarded then 48 if forwarded then
48 stanza = forwarded; 49 stanza = forwarded;
49 end 50 end
50 if stanza:get_child("body") then 51 if stanza:get_child("body") then
51 return true; 52 return true, "body";
52 end 53 end
53 if stanza:get_child("subject") then 54 if stanza:get_child("subject") then
54 return true; 55 -- Last step of a MUC join
56 return true, "subject";
55 end 57 end
56 if stanza:get_child("encryption", "urn:xmpp:eme:0") then 58 if stanza:get_child("encryption", "urn:xmpp:eme:0") then
57 return true; 59 -- Since we can't know what an encrypted message contains, we assume it's important
60 -- XXX Experimental XEP
61 return true, "encrypted";
58 end 62 end
59 if stanza:get_child("x", "jabber:x:conference") or stanza:find("{http://jabber.org/protocol/muc#user}x/invite") then 63 if stanza:get_child("x", "jabber:x:conference") or stanza:find("{http://jabber.org/protocol/muc#user}x/invite") then
60 return true; 64 return true, "invite";
61 end 65 end
62 for important in important_payloads do 66 for important in important_payloads do
63 if stanza:find(important) then 67 if stanza:find(important) then
64 return true; 68 return true;
65 end 69 end