]> granicus.if.org Git - ejabberd/commitdiff
Fix ODBC account counting (thanks to Artem Sh)(EJAB-1491)
authorBadlop <badlop@process-one.net>
Tue, 16 Aug 2011 17:33:22 +0000 (19:33 +0200)
committerBadlop <badlop@process-one.net>
Tue, 16 Aug 2011 17:33:22 +0000 (19:33 +0200)
src/mod_stats.erl
src/odbc/odbc_queries.erl
src/web/ejabberd_web_admin.erl

index 97ba031dd77055f29e207bc866a2addca5736558..5c110801db325a7daa150a07269a3d3886f96f06 100644 (file)
@@ -162,7 +162,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 ->
index b614fd790c1301614377944528908efdd3395d03..ab842b66c708640fae940e3ddb156626a528053a 100644 (file)
@@ -232,10 +232,6 @@ list_users(LServer, [{prefix, Prefix},
 
 users_number(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 ->
index a5503afe9e3148d63f17e28ca1a99d6f4ade171d..b595f494e8585961c0dc3464f032f1fd538e8624 100644 (file)
@@ -1648,7 +1648,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])),