diff options
author | Mickael Remond <mremond@process-one.net> | 2016-07-30 18:50:58 +0200 |
---|---|---|
committer | Mickael Remond <mremond@process-one.net> | 2016-07-30 18:50:58 +0200 |
commit | 4bf8ce76810e19864fec5bb659f1ecc803fcef61 (patch) | |
tree | e5a13cfa2fa0ae925ab260fb66afb8c338c32565 /src | |
parent | Ensure 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.erl | 44 |
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 |