]> granicus.if.org Git - ejabberd/commitdiff
Always specify room JID for MUC <delay/> elements
authorHolger Weiss <holger@zedat.fu-berlin.de>
Mon, 9 Mar 2015 23:02:32 +0000 (00:02 +0100)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Mon, 9 Mar 2015 23:02:32 +0000 (00:02 +0100)
As per version 1.25 of XEP-0045, use the room JID as the 'from' address
for <delay/> elements also when the room is non-anonymous, and specify
the original JID of the sender as an XEP-0033-style tag instead.

Closes #465.

src/mod_muc_room.erl

index aae90af4b193cf99acf124ae55c7669c7d2c1e86..64bfd6c444c9a5bf1af3f60b4a786447a253e1b6 100644 (file)
@@ -2442,13 +2442,20 @@ add_message_to_history(FromNick, FromJID, Packet, StateData) ->
                    _ -> true
                  end,
     TimeStamp = now(),
-    SenderJid = case
-                 (StateData#state.config)#config.anonymous
-                   of
-                 true -> StateData#state.jid;
-                 false -> FromJID
-               end,
-    TSPacket = jlib:add_delay_info(Packet, SenderJid, TimeStamp),
+    AddrPacket = case (StateData#state.config)#config.anonymous of
+                  true -> Packet;
+                  false ->
+                      Address = #xmlel{name = <<"address">>,
+                                       attrs = [{<<"type">>, <<"ofrom">>},
+                                                {<<"jid">>,
+                                                 jlib:jid_to_string(FromJID)}],
+                                       children = []},
+                      Addresses = #xmlel{name = <<"addresses">>,
+                                         attrs = [{<<"xmlns">>, ?NS_ADDRESS}],
+                                         children = [Address]},
+                      xml:append_subtags(Packet, [Addresses])
+                end,
+    TSPacket = jlib:add_delay_info(AddrPacket, StateData#state.jid, TimeStamp),
     SPacket =
        jlib:replace_from_to(jlib:jid_replace_resource(StateData#state.jid,
                                                       FromNick),