mod_mam/mod_mam.lua
changeset 1794 4c2146f5bf39
parent 1792 d2b82b90c413
child 1961 ca33cca2e028
equal deleted inserted replaced
1793:dbce8a7726ef 1794:4c2146f5bf39
   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);