From 2af65d4f4208dd9baeb90fb91779b8b7515d21db Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 8 Apr 2008 09:37:06 +0000 Subject: [PATCH] * 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. SVN Revision: 1280 --- ChangeLog | 7 +++++++ src/ejabberd_auth_ldap.erl | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index bf410d4f1..a2193d04a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-04-08 Badlop + + * 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 * doc/guide.tex: Documented the IQ discipline {queue, N}. diff --git a/src/ejabberd_auth_ldap.erl b/src/ejabberd_auth_ldap.erl index fcb5b985f..e22be1bc9 100644 --- a/src/ejabberd_auth_ldap.erl +++ b/src/ejabberd_auth_ldap.erl @@ -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(