]> 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:28:52 +0000 (19:28 +0200)
committerBadlop <badlop@process-one.net>
Tue, 16 Aug 2011 17:29:40 +0000 (19:29 +0200)
src/mod_stats.erl
src/odbc/odbc_queries.erl
src/web/ejabberd_web_admin.erl

index d67331912babfbd93b8d19d2634aa10e93438333..a11564e94df9990415e6361bdc6e3fc0bc81150c 100644 (file)
@@ -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 ->
index ccbf8271d87517bec6618669372c1b1828321e93..11a2e3cab866c8b08b79d7511d668b6171f1bcd2 100644 (file)
@@ -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 ->
index 7ad2ed8ed40102d396f2a175b119aa9aaaac65e8..10df8a4ef89435cc1824fb1ab19866f40ecb7c0e 100644 (file)
@@ -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])),