profanity icon indicating copy to clipboard operation
profanity copied to clipboard

pseudo-joined conferences

Open kousu opened this issue 9 years ago • 7 comments

Profanity (in contrast to all the other clients I've tried) responds to a MUC presence stanza telling it that it has joined a room, like

<!-- In Mon 08 Feb 2016 10:21:23 PM EST
  From Slack XMPP Gateway
 -->
<presence xmlns="jabber:client" from="[email protected]/kousu" to="[email protected]/Gajim">
<x xmlns="http://jabber.org/protocol/muc#user">
<status code="100"/>
<status code="110"/>
<status code="200"/>
<item affiliation="member" role="participant" jid="[email protected]" name="kousu" nick="kousu"/>
</x>
<show>chat</show>
<x xmlns="vcard-temp:x:update">
<photo>sha1-hash-of-image_202081</photo>
<FN>kousu</FN>
</x>
</presence>

Gajim and Pidgin and Xabber ignore these unless they were the ones that initiated the join. So does Conversations, but it will pick up a following <message type="groupchat" from="[email protected]/someone" to="[email protected]">, turn it into a window, complain that the conference doesn't exist, and not pick up the roster: https://github.com/siacs/Conversations/issues/1687.

Profanity has similar issues. It does this:

[email protected]                                                            [ ...online ]
09-02-16 09:55 ! -> You have joined the room as (null), role: none, affiliation: none

and shows no room roster.

I don't think the spec specifically outlaws what Slack is doing, but it's certainly non-standard. Yet if Slack can cause you to set nulls in your code and then use them you probably have gaps floating around those code branches.

kousu avatar Feb 09 '16 15:02 kousu

@kousu is this still the case?

How do I get such a stanza to test?

jubalh avatar Jun 15 '22 13:06 jubalh

I'm sorry, I'm not sure how to test this now. Slack turned off their XMPP gateways years ago. I assume it is still an issue if no one has looked into it.

Without Slack's gateways handy, the only way I could think to test this now is to write a gateway (in slixmpp or aioxmpp or whatever) that sends these un-requested joins and see how Profanity handles them. I don't have one ready for you.

kousu avatar Jun 26 '22 16:06 kousu