Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-07-09 14:30:25 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-07-09 14:30:25 +0300
commit590849e2c3b5952b686d360a9babb6411b3ff1af (patch)
tree1e1ac4391cf6907e76686168103ea608f3b30606 /src/ejabberd_hooks.erl
parentf7ad25108cee68862f6f570c93e5d5565077ee0d (diff)
Avoid returning 'stopped' from ejabberd_hooks:run_fold()
Diffstat (limited to 'src/ejabberd_hooks.erl')
-rw-r--r--src/ejabberd_hooks.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ejabberd_hooks.erl b/src/ejabberd_hooks.erl
index f329da4a8..cc202477a 100644
--- a/src/ejabberd_hooks.erl
+++ b/src/ejabberd_hooks.erl
@@ -111,16 +111,16 @@ run(Hook, Host, Args) ->
ok
end.
--spec run_fold(atom(), any(), list()) -> any().
+-spec run_fold(atom(), T, list()) -> T.
%% @doc Run the calls of this hook in order.
%% The arguments passed to the function are: [Val | Args].
%% The result of a call is used as Val for the next call.
-%% If a call returns 'stop', no more calls are performed and 'stopped' is returned.
+%% If a call returns 'stop', no more calls are performed.
%% If a call returns {stop, NewVal}, no more calls are performed and NewVal is returned.
run_fold(Hook, Val, Args) ->
run_fold(Hook, global, Val, Args).
--spec run_fold(atom(), binary() | global, any(), list()) -> any().
+-spec run_fold(atom(), binary() | global, T, list()) -> T.
run_fold(Hook, Host, Val, Args) ->
try ets:lookup(hooks, {Hook, Host}) of
[{_, Ls}] ->
@@ -210,7 +210,7 @@ run1([{_Seq, Module, Function} | Ls], Hook, Args) ->
run1(Ls, Hook, Args)
end.
--spec run_fold1([hook()], atom(), T, list()) -> T | stopped.
+-spec run_fold1([hook()], atom(), T, list()) -> T.
run_fold1([], _Hook, Val, _Args) ->
Val;
run_fold1([{_Seq, Module, Function} | Ls], Hook, Val, Args) ->
@@ -219,7 +219,7 @@ run_fold1([{_Seq, Module, Function} | Ls], Hook, Val, Args) ->
'EXIT' ->
run_fold1(Ls, Hook, Val, Args);
stop ->
- stopped;
+ Val;
{stop, NewVal} ->
NewVal;
NewVal ->