From 4bf8ce76810e19864fec5bb659f1ecc803fcef61 Mon Sep 17 00:00:00 2001 From: Mickael Remond Date: Sat, 30 Jul 2016 18:50:58 +0200 Subject: [PATCH] Make s2s stats commands more robust --- src/ejabberd_s2s.erl | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 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