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

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

SVN Revision: 2884
This commit is contained in:
Christophe Romain 2010-01-12 14:39:52 +00:00
parent 392ea78acf
commit 6ddff15b39
2 changed files with 8 additions and 0 deletions

View File

@ -395,6 +395,10 @@ unsubscribe_node(NodeId, Sender, Subscriber, SubId) ->
{error, ?ERR_EXTENDED(?ERR_UNEXPECTED_REQUEST, {error, ?ERR_EXTENDED(?ERR_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

@ -394,6 +394,10 @@ unsubscribe_node(NodeId, Sender, Subscriber, SubId) ->
false -> false ->
{error, ?ERR_EXTENDED(?ERR_UNEXPECTED_REQUEST, "not-subscribed")} {error, ?ERR_EXTENDED(?ERR_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 ->