#673 PEP events not send when adding someone back

Reporter Daniel Gultsch
Owner Zash
Created
Updated
Stars ★ (1)  
Tags
  • Milestone-0.9
  • Status-Fixed
  • Type-Defect
  • Priority-Medium
  1. Daniel Gultsch on

    What steps will reproduce the problem? 1. A sends subscription request to B 2. B acknowledges subscription request and in turn send subscription request to A 3. A accepts subscription request What is the expected output? What do you see instead? I would expect both A and B to receive each others PEP events upon subscribing. But Only A receives B's PEP events. When B logs out and in again it will receive A's events as well. What version of the product are you using? On what operating system? I actually tested this on jabber.de which runs 0.9 on Linux but I'm fairly certain I've seen this in trunk as well. Please provide any additional information below. I have a log file from Conversations that somewhat documents the process. (The IQ roster pushes are in it by chance. null is the server and only the IQ child elements are being logged) 05-15 18:27:56.787 12665 23915 D conversations: inputnice2@jabber.de: IQ request from null <query xmlns="jabber:iq:roster" ver="2"><item subscription="none" xmlns="jabber:iq:roster" jid="inputnice@jabber.de"/></query> 05-15 18:27:56.839 12665 23915 D conversations: inputnice2@jabber.de: IQ request from null <query xmlns="jabber:iq:roster" ver="3"><item subscription="from" xmlns="jabber:iq:roster" jid="inputnice@jabber.de"/></query> 05-15 18:27:56.845 12665 23823 D conversations: inputnice@jabber.de: IQ request from null <query xmlns="jabber:iq:roster" ver="3"><item subscription="to" xmlns="jabber:iq:roster" jid="inputnice2@jabber.de"/></query> 05-15 18:27:56.850 12665 23915 D conversations: inputnice2@jabber.de: IQ request from null <query xmlns="jabber:iq:roster" ver="4"><item subscription="from" xmlns="jabber:iq:roster" jid="inputnice@jabber.de" ask="subscribe"/></query> 05-15 18:27:56.956 12665 23823 D conversations: inputnice@jabber.de: IQ request from null <query xmlns="jabber:iq:roster" ver="5"><item subscription="both" xmlns="jabber:iq:roster" jid="inputnice2@jabber.de"/></query> 05-15 18:27:56.958 12665 23915 D conversations: inputnice2@jabber.de: IQ request from null <query xmlns="jabber:iq:roster" ver="5"><item subscription="both" xmlns="jabber:iq:roster" jid="inputnice@jabber.de"/></query> 05-15 18:27:56.974 12665 23823 D conversations: AxolotlService (inputnice@jabber.de): Received PEP device list update from inputnice2@jabber.de, processing...

  2. Zash on

    Confirmed (on trunk, but mod_pep hasn't changed that much). I believe this is because 1) PEP requires mutual presence and 2) presence is exchanged in one direction in the "middle" of the process for creating a mutual subscription and mod_pep doesn't act on this because they are not subscribed in the other direction.

    Changes
    • tags Status-Accepted Milestone-0.9
    • owner Zash
  3. Zash on

    This patch appeared to fix the issue: diff -r bf43a08e5a74 plugins/mod_presence.lua --- a/plugins/mod_presence.lua Sun May 15 16:55:19 2016 +0200 +++ b/plugins/mod_presence.lua Sat May 21 18:30:06 2016 +0200 @@ -178,6 +178,7 @@ function handle_outbound_presence_subscr end core_post_stanza(origin, stanza); send_presence_of_available_resources(node, host, to_bare, origin); + core_post_stanza(origin, st.presence({ type = "probe", from = from_bare, to = to_bare })); elseif stanza.attr.type == "unsubscribed" then -- 1. send unavailable -- 2. route stanza

    Changes
    • tags Status-Started
  4. Zash on

    Committed as https://hg.prosody.im/0.9/rev/ad0b15f253ee

    Changes
    • tags Status-Fixed

New comment