diff options
Diffstat (limited to 'src/mod_pubsub/mod_pubsub.erl')
-rw-r--r-- | src/mod_pubsub/mod_pubsub.erl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl index 0c713dd3d..1e9d72913 100644 --- a/src/mod_pubsub/mod_pubsub.erl +++ b/src/mod_pubsub/mod_pubsub.erl @@ -718,10 +718,16 @@ disco_sm_items(Acc, From, To, SNode, _Lang) -> presence_probe(#jid{luser = User, lserver = Server, lresource = Resource} = JID, JID, Pid) -> Proc = gen_mod:get_module_proc(Server, ?PROCNAME), + %%?DEBUG("presence probe self ~s@~s/~s ~s@~s/~s",[User,Server,Resource,element(2,JID),element(3,JID),element(4,JID)]), gen_server:cast(Proc, {presence, JID, Pid}), gen_server:cast(Proc, {presence, User, Server, [Resource], JID}); +presence_probe(#jid{luser = User, lserver = Server}, #jid{luser = User, lserver = Server}, _Pid) -> + %% ignore presence_probe from other ressources for the current user + %% this way, we do not send duplicated last items if user already connected with other clients + ok; presence_probe(#jid{luser = User, lserver = Server, lresource = Resource}, #jid{lserver = Host} = JID, _Pid) -> Proc = gen_mod:get_module_proc(Host, ?PROCNAME), + %%?DEBUG("presence probe peer ~s@~s/~s ~s@~s/~s",[User,Server,Resource,element(2,JID),element(3,JID),element(4,JID)]), gen_server:cast(Proc, {presence, User, Server, [Resource], JID}). %% ------- |