aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_s2s.erl')
-rw-r--r--src/ejabberd_s2s.erl26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl
index 3c3e698ad..97aef3cab 100644
--- a/src/ejabberd_s2s.erl
+++ b/src/ejabberd_s2s.erl
@@ -466,19 +466,17 @@ send_element(Pid, El) ->
%%% ejabberd commands
get_commands_spec() ->
- [#ejabberd_commands{name = incoming_s2s_number,
+ [#ejabberd_commands{
+ name = incoming_s2s_number,
tags = [stats, s2s],
- desc =
- "Number of incoming s2s connections on "
- "the node",
+ desc = "Number of incoming s2s connections on the node",
policy = admin,
module = ?MODULE, function = incoming_s2s_number,
args = [], result = {s2s_incoming, integer}},
- #ejabberd_commands{name = outgoing_s2s_number,
+ #ejabberd_commands{
+ name = outgoing_s2s_number,
tags = [stats, s2s],
- desc =
- "Number of outgoing s2s connections on "
- "the node",
+ desc = "Number of outgoing s2s connections on the node",
policy = admin,
module = ?MODULE, function = outgoing_s2s_number,
args = [], result = {s2s_outgoing, integer}},
@@ -489,11 +487,19 @@ get_commands_spec() ->
module = ?MODULE, function = stop_all_connections,
args = [], result = {res, rescode}}].
+%% TODO Move those stats commands to ejabberd stats command ?
incoming_s2s_number() ->
- length(supervisor:which_children(ejabberd_s2s_in_sup)).
+ supervisor_count(ejabberd_s2s_in_sup).
outgoing_s2s_number() ->
- length(supervisor:which_children(ejabberd_s2s_out_sup)).
+ supervisor_count(ejabberd_s2s_out_sup).
+
+supervisor_count(Supervisor) ->
+ case catch supervisor:which_children(Supervisor) of
+ {'EXIT', _} -> 0;
+ Result ->
+ length(Result)
+ end.
stop_all_connections() ->
lists:foreach(