221 local orig_type = stanza.attr.type or "normal"; |
221 local orig_type = stanza.attr.type or "normal"; |
222 local orig_from = stanza.attr.from; |
222 local orig_from = stanza.attr.from; |
223 local orig_to = stanza.attr.to or orig_from; |
223 local orig_to = stanza.attr.to or orig_from; |
224 -- Stanza without 'to' are treated as if it was to their own bare jid |
224 -- Stanza without 'to' are treated as if it was to their own bare jid |
225 |
225 |
226 -- We don't store messages of these types |
226 -- We store chat messages or normal messages that have a body |
227 if orig_type == "error" |
227 if not(orig_type == "chat" or orig_type == "normal" and stanza:get_child("body") ) then |
228 or orig_type == "headline" |
228 module:log("debug", "Not archiving stanza: %s (type)", stanza:top_tag()); |
229 or orig_type == "groupchat" |
229 return; |
230 -- or that don't have a <body/> |
230 end |
231 or not stanza:get_child("body") |
|
232 -- or if hints suggest we shouldn't |
231 -- or if hints suggest we shouldn't |
233 or stanza:get_child("no-permanent-storage", "urn:xmpp:hints") -- The XEP needs to decide on "store" or "storage" |
232 if stanza:get_child("no-permanent-storage", "urn:xmpp:hints") -- The XEP needs to decide on "store" or "storage" |
234 or stanza:get_child("no-permanent-store", "urn:xmpp:hints") |
233 or stanza:get_child("no-permanent-store", "urn:xmpp:hints") |
235 or stanza:get_child("no-storage", "urn:xmpp:hints") |
234 or stanza:get_child("no-storage", "urn:xmpp:hints") |
236 or stanza:get_child("no-store", "urn:xmpp:hints") then |
235 or stanza:get_child("no-store", "urn:xmpp:hints") then |
237 module:log("debug", "Not archiving stanza: %s (content)", stanza:top_tag()); |
236 module:log("debug", "Not archiving stanza: %s (hint)", stanza:top_tag()); |
238 return; |
237 return; |
239 end |
238 end |
240 |
239 |
241 -- Whos storage do we put it in? |
240 -- Whos storage do we put it in? |
242 local store_user = c2s and origin.username or jid_split(orig_to); |
241 local store_user = c2s and origin.username or jid_split(orig_to); |