25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-26 16:26:24 +01:00

allow unsubscribe with 'all' SubId, as mod_pubsub already does

SVN Revision: 2885
This commit is contained in:
Christophe Romain 2010-01-12 14:42:23 +00:00
parent f8886ee36c
commit dd159242e3
2 changed files with 8 additions and 0 deletions

View File

@ -396,6 +396,10 @@ unsubscribe_node(NodeId, Sender, Subscriber, SubId) ->
{error, ?ERR_EXTENDED('unexpected-request', {error, ?ERR_EXTENDED('unexpected-request',
"not-subscribed")} "not-subscribed")}
end; end;
%% Asking to remove all subscriptions to the given node
SubId == all ->
[delete_subscription(SubKey, NodeId, S, SubState) || S <- Subscriptions],
{result, default};
%% No subid supplied, but there's only one matching %% No subid supplied, but there's only one matching
%% subscription, so use that. %% subscription, so use that.
length(Subscriptions) == 1 -> length(Subscriptions) == 1 ->

View File

@ -400,6 +400,10 @@ unsubscribe_node(NodeId, Sender, Subscriber, SubId) ->
false -> false ->
{error, ?ERR_EXTENDED('unexpected-request', "not-subscribed")} {error, ?ERR_EXTENDED('unexpected-request', "not-subscribed")}
end; end;
%% Asking to remove all subscriptions to the given node
SubId == all ->
[delete_subscription(SubKey, NodeId, S, Affiliation, Subscriptions) || S <- Subscriptions],
{result, default};
%% No subid supplied, but there's only one matching %% No subid supplied, but there's only one matching
%% subscription, so use that. %% subscription, so use that.
length(Subscriptions) == 1 -> length(Subscriptions) == 1 ->