aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2015-03-10 00:02:32 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2015-03-10 00:02:32 +0100
commitd991b92a49e724187266ab0ee3b91219fa61a1a7 (patch)
tree20a35649a6d0fdd2200e34860470e11305c87456
parentMerge pull request #467 from hamano/mod_offline_restart (diff)
Always specify room JID for MUC <delay/> elements
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.
-rw-r--r--src/mod_muc_room.erl21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl
index aae90af4b..64bfd6c44 100644
--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -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),