aboutsummaryrefslogtreecommitdiff
path: root/src/eldap/eldap_utils.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/eldap/eldap_utils.erl')
-rw-r--r--src/eldap/eldap_utils.erl16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/eldap/eldap_utils.erl b/src/eldap/eldap_utils.erl
index b8ddee36b..5f3a24283 100644
--- a/src/eldap/eldap_utils.erl
+++ b/src/eldap/eldap_utils.erl
@@ -35,8 +35,11 @@
make_filter/2,
get_state/2,
case_insensitive_match/2,
+ check_filter/1,
uids_domain_subst/2]).
+-include("ejabberd.hrl").
+
%% Generate an 'or' LDAP query on one or several attributes
%% If there is only one attribute
generate_subfilter([UID]) ->
@@ -144,3 +147,16 @@ uids_domain_subst(Host, UIDs) ->
(A) -> A
end,
UIDs).
+
+check_filter(undefined) ->
+ ok;
+check_filter(Filter) ->
+ case eldap_filter:parse(Filter) of
+ {ok, _} ->
+ ok;
+ Err ->
+ ?ERROR_MSG("failed to parse LDAP filter:~n"
+ "** Filter: ~p~n"
+ "** Reason: ~p",
+ [Filter, Err])
+ end.