diff options
Diffstat (limited to 'src/ejabberd_s2s.erl')
-rw-r--r-- | src/ejabberd_s2s.erl | 26 |
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( |