]> granicus.if.org Git - ejabberd/commitdiff
* src/ejabberd_auth_ldap.erl: LDAP function to get the number of
authorBadlop <badlop@process-one.net>
Tue, 8 Apr 2008 09:37:06 +0000 (09:37 +0000)
committerBadlop <badlop@process-one.net>
Tue, 8 Apr 2008 09:37:06 +0000 (09:37 +0000)
registered users is too slow (EJAB-331): set timeout in LDAP
search queries (thanks to Evgeniy Khramtsov) and return the number
of registered users.

SVN Revision: 1280

ChangeLog
src/ejabberd_auth_ldap.erl

index 1cb81d0ac1022b9c467c3c058f2c5e5e8038397d..caf4527d4dfe8198313a4c8bc654df001925895d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-08  Badlop  <badlop@process-one.net>
+
+       * src/ejabberd_auth_ldap.erl: LDAP function to get the number of
+       registered users is too slow (EJAB-331): set timeout in LDAP
+       search queries (thanks to Evgeniy Khramtsov) and return the number
+       of registered users.
+
 2008-04-07  Mickael Remond  <mremond@process-one.net>
 
        * doc/guide.tex: Documented the IQ discipline {queue, N}.
index fcb5b985f2a5d969a5e046446e574fe77296834e..e22be1bc9dc785ec546ebee7645e1ce36bd37360 100644 (file)
@@ -86,6 +86,10 @@ handle_info(_Info, State) ->
     {noreply, State}.
 %% -----
 
+
+-define(LDAP_SEARCH_TIMEOUT, 5). % Timeout for LDAP search queries in seconds
+
+
 %%%----------------------------------------------------------------------
 %%% API
 %%%----------------------------------------------------------------------
@@ -172,8 +176,8 @@ get_vh_registered_users(Server) ->
        Result -> Result
        end.
 
-get_vh_registered_users_number(_Server) ->
-    0.
+get_vh_registered_users_number(Server) ->
+    length(get_vh_registered_users(Server)).
 
 get_password(_User, _Server) ->
     false.
@@ -220,6 +224,7 @@ get_vh_registered_users_ldap(Server) ->
                {ok, EldapFilter} ->
                    case eldap_pool:search(Eldap_ID, [{base, State#state.base},
                                                 {filter, EldapFilter},
+                                                {timeout, ?LDAP_SEARCH_TIMEOUT},
                                                 {attributes, SortedDNAttrs}]) of
                        #eldap_search_result{entries = Entries} ->
                            lists:flatmap(