aboutsummaryrefslogtreecommitdiff
path: root/src/mod_mam.erl
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2019-04-09 11:16:27 +0200
committerPaweł Chmielowski <pchmielowski@process-one.net>2019-04-09 11:17:14 +0200
commitc5a06e9d06492eae08d1947ed072c4f993d97f62 (patch)
tree22b9133e0d74434c29bfc32bd9c833b636661f39 /src/mod_mam.erl
parentUse xml:lang from stanza when it's missing in <command/> element (diff)
When making mucsub message from mam archive check for subject
Diffstat (limited to 'src/mod_mam.erl')
-rw-r--r--src/mod_mam.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mod_mam.erl b/src/mod_mam.erl
index 2532698a5..5e20184fa 100644
--- a/src/mod_mam.erl
+++ b/src/mod_mam.erl
@@ -1174,7 +1174,7 @@ wrap_as_mucsub(Messages, #jid{lserver = LServer} = Requester) ->
wrap_as_mucsub(Message, Requester, ReqServer) ->
case Message of
#forwarded{delay = #delay{stamp = Stamp, desc = Desc},
- sub_els = [#message{from = From, sub_els = SubEls} = Msg]} ->
+ sub_els = [#message{from = From, sub_els = SubEls, subject = Subject} = Msg]} ->
{L1, SubEls2} = case lists:keytake(mam_archived, 1, xmpp:decode(SubEls)) of
{value, Arch, Rest} ->
{[Arch#mam_archived{by = Requester}], Rest};
@@ -1188,13 +1188,19 @@ wrap_as_mucsub(Message, Requester, ReqServer) ->
{p1_rand:get_string(), L1, SubEls2}
end,
Msg2 = Msg#message{to = Requester, sub_els = SubEls3},
+ Node = case Subject of
+ [] ->
+ ?NS_MUCSUB_NODES_MESSAGES;
+ _ ->
+ ?NS_MUCSUB_NODES_SUBJECT
+ end,
#forwarded{delay = #delay{stamp = Stamp, desc = Desc, from = ReqServer},
sub_els = [
#message{from = jid:remove_resource(From), to = Requester,
id = Sid,
sub_els = [#ps_event{
items = #ps_items{
- node = ?NS_MUCSUB_NODES_MESSAGES,
+ node = Node,
items = [#ps_item{
id = Sid,
sub_els = [Msg2]