mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-11-22 03:52:06 +01:00
98dbc0ee2e
MUC mediated invitations usually have the form <message from='coven@chat.shakespeare.lit' id='nzd143v8' to='hecate@shakespeare.lit'> <x xmlns='http://jabber.org/protocol/muc#user'> <invite from='crone1@shakespeare.lit/desktop'> <reason> Hey Hecate, this is the place for all good witches! </reason> </invite> <password>cauldronburn</password> </x> </message> (source: XEP-0045 Example 57.) However, previous versions of XEP-0045 specified an additional <x xmlns='jabber❌conference'> element to be included (see implementation note in XEP-0045). Therefore, a legacy implementation may emit a mediated invitations in the form of <message from="smack-inttest-mediated-invite-from-8ta77-hw9igz@conference.example.org" to="smack-inttest-two-8ta77@example.org"> <x xmlns="http://jabber.org/protocol/muc#user"> <invite from="smack-inttest-one-8ta77@example.org"/> </x> <x xmlns="jabber❌conference" jid="smack-inttest-mediated-invite-from-8ta77-hw9igz@conference.example.org"/> </message> Unfortunately, this matches MultiUserChatManager.DIRECT_INVITATION_FILTER because GroupChatInvitation matches <x xmlns="jabber❌conference"/>. However the message is not a direct invitation but a mediated one. Besides this invoking the wrong listeners (direct vs. medidated) the value for 'inviter' that's used to invoke that listener will be false. To fix this, extend DIRECT_INVITATION_FILTER with NotFilter.of(MUCUser.class) to avoid matching those legacy mediated invitations. Fixes SMACK-943 Co-authored-by: Florian Schmaus <flo@geekplace.eu> |
||
---|---|---|
.. | ||
src | ||
build.gradle |