diff options
Diffstat (limited to 'src/eldap/eldap_utils.erl')
-rw-r--r-- | src/eldap/eldap_utils.erl | 16 |
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. |