aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMickael Remond <mremond@process-one.net>2016-07-30 18:50:58 +0200
committerMickael Remond <mremond@process-one.net>2016-07-30 18:50:58 +0200
commit4bf8ce76810e19864fec5bb659f1ecc803fcef61 (patch)
treee5a13cfa2fa0ae925ab260fb66afb8c338c32565 /src
parentEnsure ejabberdctl status result is in valid shell supported range (diff)
Make s2s stats commands more robust
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_s2s.erl44
1 files changed, 25 insertions, 19 deletions
diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl
index 19de64adb..2a17c75cb 100644
--- a/src/ejabberd_s2s.erl
+++ b/src/ejabberd_s2s.erl
@@ -473,28 +473,34 @@ send_element(Pid, El) ->
%%% ejabberd commands
get_commands_spec() ->
- [#ejabberd_commands{name = incoming_s2s_number,
- tags = [stats, s2s],
- 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,
- tags = [stats, s2s],
- desc =
- "Number of outgoing s2s connections on "
- "the node",
- policy = admin,
- module = ?MODULE, function = outgoing_s2s_number,
- args = [], result = {s2s_outgoing, integer}}].
-
+ [#ejabberd_commands{
+ name = incoming_s2s_number,
+ tags = [stats, s2s],
+ 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,
+ tags = [stats, s2s],
+ desc = "Number of outgoing s2s connections on the node",
+ policy = admin,
+ module = ?MODULE, function = outgoing_s2s_number,
+ args = [], result = {s2s_outgoing, integer}}].
+
+%% 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.
%%%----------------------------------------------------------------------
%%% Update Mnesia tables