]> granicus.if.org Git - ejabberd/commitdiff
Fix sender in case of explicit pep subscriptions
authorChristophe Romain <christophe.romain@process-one.net>
Fri, 25 Mar 2016 16:52:08 +0000 (17:52 +0100)
committerChristophe Romain <christophe.romain@process-one.net>
Mon, 2 May 2016 13:04:14 +0000 (15:04 +0200)
src/mod_pubsub.erl

index 7ec2fe57ca006202b1f74b13259f4c12611ac845..35173a4f2a9a641e20a9af46694a68c1ee7e2222 100644 (file)
@@ -3172,11 +3172,9 @@ subscription_to_string(_) -> <<"none">>.
        Host :: mod_pubsub:host())
     -> jid()
     ).
-service_jid(Host) ->
-    case Host of
-       {U, S, _} -> {jid, U, S, <<>>, U, S, <<>>};
-       _ -> {jid, <<>>, Host, <<>>, <<>>, Host, <<>>}
-    end.
+service_jid(#jid{} = Jid) -> Jid;
+service_jid({U, S, R}) -> jid:make(U, S, R);
+service_jid(Host) -> jid:make(<<>>, Host, <<>>).
 
 %% @spec (LJID, NotifyType, Depth, NodeOptions, SubOptions) -> boolean()
 %%        LJID = jid()
@@ -3525,7 +3523,7 @@ broadcast_stanza(Host, _Node, _Nidx, _Type, NodeOptions, SubsByDepth, NotifyType
        end, SubIDsByJID).
 
 broadcast_stanza({LUser, LServer, LResource}, Publisher, Node, Nidx, Type, NodeOptions, SubsByDepth, NotifyType, BaseStanza, SHIM) ->
-    broadcast_stanza({LUser, LServer, LResource}, Node, Nidx, Type, NodeOptions, SubsByDepth, NotifyType, BaseStanza, SHIM),
+    broadcast_stanza({LUser, LServer, <<>>}, Node, Nidx, Type, NodeOptions, SubsByDepth, NotifyType, BaseStanza, SHIM),
     %% Handles implicit presence subscriptions
     SenderResource = user_resource(LUser, LServer, LResource),
     case ejabberd_sm:get_session_pid(LUser, LServer, SenderResource) of