#798 MUC-PMs are wrongfully carbon-copied

Reporter Ge0rG
Owner Zash
Created
Updated
Stars ★ (1)
Tags
  • Priority-Medium
  • Status-WontFix
  • Type-Defect
  1. Ge0rG on

    I'm running a MUC on my prosody 0.10, with two carbons-enabled clients from the same server joined in a multi-session-nick fashion. Another user sends a MUC-PM to my nickname. Expected outcome: both clients receive a copy of the MUC-PM directly from the MUC service. Actual outcome: both clients receive the PM as well as a carbon copy of it, resulting in two total messages. Client A gets the carbon first (message with no 'id'), and the actual PM second: <message type='chat' to='georg@yax.im/yaxim.zzzzzzzz' from='georg@yax.im'> <received xmlns='urn:xmpp:carbons:2'><forwarded xmlns='urn:xmpp:forward:0'> <message type='chat' to='georg@yax.im/ef769a98-fd69-4257-adf4-34c85916de4b' from='yaxim@chat.yax.im/Not-Ge0rG' id='c8e89dd3-38e3-4c15-87e1-832178135d0c' xmlns='jabber:client'> <body>This is another massage.</body><active xmlns='http://jabber.org/protocol/chatstates'/><request xmlns='urn:xmpp:receipts'/><thread>WiagdRIwSfesbsGyOzvWWioEvFcaiNZE</thread><x xmlns='http://jabber.org/protocol/muc#user'/> </message> </forwarded></received> </message> <message id='c8e89dd3-38e3-4c15-87e1-832178135d0c' type='chat' to='georg@yax.im/yaxim.zzzzzzzz' from='yaxim@chat.yax.im/Not-Ge0rG'> <body>This is another massage.</body><active xmlns='http://jabber.org/protocol/chatstates'/><request xmlns='urn:xmpp:receipts'/><thread>WiagdRIwSfesbsGyOzvWWioEvFcaiNZE</thread><x xmlns='http://jabber.org/protocol/muc#user'/> </message> Client B gets the PM first and the carbon second: <message from="yaxim@chat.yax.im/Not-Ge0rG" id="c8e89dd3-38e3-4c15-87e1-832178135d0c" type="chat" to="georg@yax.im/clientB"> <body>This is another massage.</body><active xmlns="http://jabber.org/protocol/chatstates" /><request xmlns="urn:xmpp:receipts" /><thread>WiagdRIwSfesbsGyOzvWWioEvFcaiNZE</thread><x xmlns="http://jabber.org/protocol/muc#user" /><replace xmlns="urn:xmpp:message-correct:0" /> </message> <message from="georg@yax.im" id="528da32d-22fc-45fd-9f72-8f694ea1026b-43CF" type="chat" to="georg@yax.im/clientB"> <received xmlns="urn:xmpp:carbons:2"><forwarded xmlns="urn:xmpp:forward:0"> <message xmlns="jabber:client" from="yaxim@chat.yax.im/Not-Ge0rG" id="c8e89dd3-38e3-4c15-87e1-832178135d0c" type="chat" to="georg@yax.im/yaxim"> <body>This is another massage.</body><active xmlns="http://jabber.org/protocol/chatstates" /><request xmlns="urn:xmpp:receipts" /><thread>WiagdRIwSfesbsGyOzvWWioEvFcaiNZE</thread><x xmlns="http://jabber.org/protocol/muc#user" /> </message> </forwarded></received> </message> While the message is properly tagged with 'muc#user', it is still carbon-copied by prosody: Dec 14 11:42:56 s2sin9b30d80 debug Received[s2sin]: <message id='c8e89dd3-38e3-4c15-87e1-832178135d0c' type='chat' to='yaxim@chat.yax.im/Ge0rG' from='georg@otherdomain.de/otherclient'> Dec 14 11:42:56 mod_muc debug room: yaxim@chat.yax.im, current_nick: yaxim@chat.yax.im/Not-Ge0rG, stanza: <message id='c8e89dd3-38e3-4c15-87e1-832178135d0c' type='chat' to='yaxim@chat.yax.im/Ge0rG' from='georg@otherdomain.de/otherclient'> Dec 14 11:42:56 mod_muc debug georg@otherdomain.de/otherclient sent private stanza to yaxim@chat.yax.im/Ge0rG (georg@yax.im/clientB) Dec 14 11:42:56 yax.im:carbons debug Sending carbon to georg@yax.im/yaxim.zzzzzzzz Dec 14 11:42:56 yax.im:carbons debug Sending carbon to georg@yax.im/clientB

  2. ValdikSS on

    Just for your information: ejabberd also sends carbon copies for MUC PMs. Psi+, Gajim and Conversations correctly filter out that carbons.

  3. Ge0rG on

    @ValdikSS that's not so easy. If I am joined into a MUC from two clients, I want both to receive PMs. So at least I need to accept sent-Carbons of PMs generated by the other client. Maybe also received-PMs of incoming messages, if they aren't sent by the MUC.

  4. Zash on

    As you pointed out in a mailing list post, this requires either local MUC join tracking or that every other MUC includes the <x> tag on PMs.

  5. Ge0rG on

    Indeed, I've only properly analyzed the situation and the implications after opening this issue. I'm fine with WONTFIXing this report and forcing clients to properly handle the situation. The only change that is needed on behalf of prosody is to keep Carbon-copying type!="groupchat" messages that have an <x/> element, which is actually the opposite of what I asked for in the beginning ;) Reference to the ML post: https://mail.jabber.org/pipermail/standards/2017-January/032048.html

  6. Zash on

    Might revisit this in the future.

    Changes
    • owner Zash
    • tags Status-WontFix

New comment

Not published. Used for spam prevention and optional update notifications.