From 6eb5b0d298a634d65e9ef187ccce2b823ab0140b Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 16 Aug 2011 19:28:52 +0200 Subject: [PATCH] Fix ODBC account counting (thanks to Artem Sh)(EJAB-1491) --- src/mod_stats.erl | 7 ++++++- src/odbc/odbc_queries.erl | 4 ---- src/web/ejabberd_web_admin.erl | 5 ++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/mod_stats.erl b/src/mod_stats.erl index d67331912..a11564e94 100644 --- a/src/mod_stats.erl +++ b/src/mod_stats.erl @@ -157,7 +157,12 @@ get_local_stat(_Server, [], Name) when Name == <<"users/all-hosts/online">> -> end; get_local_stat(_Server, [], Name) when Name == <<"users/all-hosts/total">> -> - case catch mnesia:table_info(passwd, size) of + NumUsers = lists:foldl( + fun(Host, Total) -> + ejabberd_auth:get_vh_registered_users_number(Host) + + Total + end, 0, ejabberd_config:get_global_option(hosts)), + case NumUsers of {'EXIT', _Reason} -> ?STATERR(<<"500">>, <<"Internal Server Error">>); Users -> diff --git a/src/odbc/odbc_queries.erl b/src/odbc/odbc_queries.erl index ccbf8271d..11a2e3cab 100644 --- a/src/odbc/odbc_queries.erl +++ b/src/odbc/odbc_queries.erl @@ -225,10 +225,6 @@ list_users(LServer, [{prefix, Prefix}, users_number(LServer) -> Host = escape(LServer), case element(1, ejabberd_config:get_local_option({odbc_server, LServer})) of - mysql -> - ejabberd_odbc:sql_query( - LServer, - "select table_rows from information_schema.tables where table_name='users'"); pgsql -> case ejabberd_config:get_local_option({pgsql_users_number_estimate, LServer}) of true -> diff --git a/src/web/ejabberd_web_admin.erl b/src/web/ejabberd_web_admin.erl index 7ad2ed8ed..10df8a4ef 100644 --- a/src/web/ejabberd_web_admin.erl +++ b/src/web/ejabberd_web_admin.erl @@ -1724,7 +1724,10 @@ su_to_list({Server, User}) -> get_stats(global, Lang) -> OnlineUsers = mnesia:table_info(session, size), - RegisteredUsers = mnesia:table_info(passwd, size), + RegisteredUsers = lists:foldl( + fun(Host, Total) -> + ejabberd_auth:get_vh_registered_users_number(Host) + Total + end, 0, ejabberd_config:get_global_option(hosts)), S2SConns = ejabberd_s2s:dirty_get_connections(), S2SConnections = length(S2SConns), S2SServers = length(lists:usort([element(2, C) || C <- S2SConns])), -- 2.50.1