]> granicus.if.org Git - ejabberd/commitdiff
Do not try to fetch module options via eldap_utils
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Sun, 31 May 2015 13:14:57 +0000 (16:14 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Mon, 1 Jun 2015 12:22:31 +0000 (15:22 +0300)
src/ejabberd_auth_ldap.erl
src/eldap_utils.erl
src/gen_mod.erl
src/mod_shared_roster_ldap.erl
src/mod_vcard_ldap.erl

index 3055d1044b59aed609b2a8b9c548b0db00cfbd24..d08151e60e407da82ccfd552dc7292b4ce194475 100644 (file)
@@ -360,7 +360,7 @@ parse_options(Host) ->
     Eldap_ID = jlib:atom_to_binary(gen_mod:get_module_proc(Host, ?MODULE)),
     Bind_Eldap_ID = jlib:atom_to_binary(
                       gen_mod:get_module_proc(Host, bind_ejabberd_auth_ldap)),
-    UIDsTemp = eldap_utils:get_opt(
+    UIDsTemp = gen_mod:get_opt(
                  {ldap_uids, Host}, [],
                  fun(Us) ->
                          lists:map(
@@ -375,7 +375,7 @@ parse_options(Host) ->
                  end, [{<<"uid">>, <<"%u">>}]),
     UIDs = eldap_utils:uids_domain_subst(Host, UIDsTemp),
     SubFilter =        eldap_utils:generate_subfilter(UIDs),
-    UserFilter = case eldap_utils:get_opt(
+    UserFilter = case gen_mod:get_opt(
                         {ldap_filter, Host}, [],
                         fun check_filter/1, <<"">>) of
                      <<"">> ->
@@ -386,7 +386,7 @@ parse_options(Host) ->
     SearchFilter = eldap_filter:do_sub(UserFilter,
                                       [{<<"%u">>, <<"*">>}]),
     {DNFilter, DNFilterAttrs} =
-        eldap_utils:get_opt({ldap_dn_filter, Host}, [],
+        gen_mod:get_opt({ldap_dn_filter, Host}, [],
                             fun([{DNF, DNFA}]) ->
                                     NewDNFA = case DNFA of
                                                   undefined ->
@@ -398,7 +398,7 @@ parse_options(Host) ->
                                     NewDNF = check_filter(DNF),
                                     {NewDNF, NewDNFA}
                             end, {undefined, []}),
-    LocalFilter = eldap_utils:get_opt(
+    LocalFilter = gen_mod:get_opt(
                     {ldap_local_filter, Host}, [], fun(V) -> V end),
     #state{host = Host, eldap_id = Eldap_ID,
            bind_eldap_id = Bind_Eldap_ID,
index eb6601623f62acd59890951e4ec35c4e6e8e04cd..bdc98c202fd484b19c5ea7942a1e66243bdad503 100644 (file)
@@ -33,8 +33,6 @@
         make_filter/2,
         get_state/2,
         case_insensitive_match/2,
-         get_opt/3,
-         get_opt/4,
          get_config/2,
          decode_octet_string/3,
         uids_domain_subst/2]).
@@ -171,64 +169,48 @@ uids_domain_subst(Host, UIDs) ->
               end,
               UIDs).
 
--spec get_opt({atom(), binary()}, list(), fun()) -> any().
-
-get_opt({Key, Host}, Opts, F) ->
-    get_opt({Key, Host}, Opts, F, undefined).
-
--spec get_opt({atom(), binary()}, list(), fun(), any()) -> any().
-
-get_opt({Key, Host}, Opts, F, Default) ->
-    case gen_mod:get_opt(Key, Opts, F, undefined) of
-        undefined ->
-            ejabberd_config:get_option(
-              {Key, Host}, F, Default);
-        Val ->
-            Val
-    end.
-
 -spec get_config(binary(), list()) -> eldap_config().
 
 get_config(Host, Opts) ->
-    Servers = get_opt({ldap_servers, Host}, Opts,
+    Servers = gen_mod:get_opt({ldap_servers, Host}, Opts,
                       fun(L) ->
                               [iolist_to_binary(H) || H <- L]
                       end, [<<"localhost">>]),
-    Backups = get_opt({ldap_backups, Host}, Opts,
+    Backups = gen_mod:get_opt({ldap_backups, Host}, Opts,
                       fun(L) ->
                               [iolist_to_binary(H) || H <- L]
                       end, []),
-    Encrypt = get_opt({ldap_encrypt, Host}, Opts,
+    Encrypt = gen_mod:get_opt({ldap_encrypt, Host}, Opts,
                       fun(tls) -> tls;
                          (starttls) -> starttls;
                          (none) -> none
                       end, none),
-    TLSVerify = get_opt({ldap_tls_verify, Host}, Opts,
+    TLSVerify = gen_mod:get_opt({ldap_tls_verify, Host}, Opts,
                         fun(hard) -> hard;
                            (soft) -> soft;
                            (false) -> false
                         end, false),
-    TLSCAFile = get_opt({ldap_tls_cacertfile, Host}, Opts,
+    TLSCAFile = gen_mod:get_opt({ldap_tls_cacertfile, Host}, Opts,
                         fun iolist_to_binary/1),
-    TLSDepth = get_opt({ldap_tls_depth, Host}, Opts,
+    TLSDepth = gen_mod:get_opt({ldap_tls_depth, Host}, Opts,
                        fun(I) when is_integer(I), I>=0 -> I end),
-    Port = get_opt({ldap_port, Host}, Opts,
+    Port = gen_mod:get_opt({ldap_port, Host}, Opts,
                    fun(I) when is_integer(I), I>0 -> I end,
                    case Encrypt of
                        tls -> ?LDAPS_PORT;
                        starttls -> ?LDAP_PORT;
                        _ -> ?LDAP_PORT
                    end),
-    RootDN = get_opt({ldap_rootdn, Host}, Opts,
+    RootDN = gen_mod:get_opt({ldap_rootdn, Host}, Opts,
                      fun iolist_to_binary/1,
                      <<"">>),
-    Password = get_opt({ldap_password, Host}, Opts,
+    Password = gen_mod:get_opt({ldap_password, Host}, Opts,
                  fun iolist_to_binary/1,
                  <<"">>),
-    Base = get_opt({ldap_base, Host}, Opts,
+    Base = gen_mod:get_opt({ldap_base, Host}, Opts,
                    fun iolist_to_binary/1,
                    <<"">>),
-    OldDerefAliases = get_opt({deref_aliases, Host}, Opts,
+    OldDerefAliases = gen_mod:get_opt({deref_aliases, Host}, Opts,
                               fun(never) -> never;
                                  (searching) -> searching;
                                  (finding) -> finding;
@@ -236,7 +218,7 @@ get_config(Host, Opts) ->
                               end, unspecified),
     DerefAliases =
         if OldDerefAliases == unspecified ->
-                get_opt({ldap_deref_aliases, Host}, Opts,
+                gen_mod:get_opt({ldap_deref_aliases, Host}, Opts,
                         fun(never) -> never;
                            (searching) -> searching;
                            (finding) -> finding;
index b8e155a0493c2b75411458296c1127110d2563aa..29d5dfb784dd38be3f32d26421c16f40810a7279 100644 (file)
@@ -155,13 +155,20 @@ wait_for_stop1(MonitorReference) ->
 
 -type check_fun() :: fun((any()) -> any()) | {module(), atom()}.
 
--spec get_opt(atom(), opts(), check_fun()) -> any().
+-spec get_opt(atom() | {atom(), binary()|global}, opts(), check_fun()) -> any().
 
 get_opt(Opt, Opts, F) ->
     get_opt(Opt, Opts, F, undefined).
 
--spec get_opt(atom(), opts(), check_fun(), any()) -> any().
+-spec get_opt(atom() | {atom(), binary()|global}, opts(), check_fun(), any()) -> any().
 
+get_opt({Opt, Host}, Opts, F, Default) ->
+    case lists:keysearch(Opt, 1, Opts) of
+        false ->
+            ejabberd_config:get_option({Opt, Host}, F, Default);
+        {value, {_, Val}} ->
+            ejabberd_config:prepare_opt_val(Opt, Val, F, Default)
+    end;
 get_opt(Opt, Opts, F, Default) ->
     case lists:keysearch(Opt, 1, Opts) of
         false ->
index af85e4d401f27a651e8d5d6ef2166585cf9ef7e3..a2d6f2fff5e024854986fdb12e1ccceb5bb3e71f 100644 (file)
@@ -521,29 +521,29 @@ parse_options(Host, Opts) ->
                                    (false) -> false;
                                    (true) -> true
                                 end, true),
-    UserCacheValidity = eldap_utils:get_opt(
+    UserCacheValidity = gen_mod:get_opt(
                           {ldap_user_cache_validity, Host}, Opts,
                           fun(I) when is_integer(I), I>0 -> I end,
                           ?USER_CACHE_VALIDITY),
-    GroupCacheValidity = eldap_utils:get_opt(
+    GroupCacheValidity = gen_mod:get_opt(
                            {ldap_group_cache_validity, Host}, Opts,
                            fun(I) when is_integer(I), I>0 -> I end,
                            ?GROUP_CACHE_VALIDITY),
-    UserCacheSize = eldap_utils:get_opt(
+    UserCacheSize = gen_mod:get_opt(
                       {ldap_user_cache_size, Host}, Opts,
                       fun(I) when is_integer(I), I>0 -> I end,
                       ?CACHE_SIZE),
-    GroupCacheSize = eldap_utils:get_opt(
+    GroupCacheSize = gen_mod:get_opt(
                        {ldap_group_cache_size, Host}, Opts,
                        fun(I) when is_integer(I), I>0 -> I end,
                        ?CACHE_SIZE),
-    ConfigFilter = eldap_utils:get_opt({ldap_filter, Host}, Opts,
+    ConfigFilter = gen_mod:get_opt({ldap_filter, Host}, Opts,
                                        fun check_filter/1, <<"">>),
-    ConfigUserFilter = eldap_utils:get_opt({ldap_ufilter, Host}, Opts,
+    ConfigUserFilter = gen_mod:get_opt({ldap_ufilter, Host}, Opts,
                                            fun check_filter/1, <<"">>),
-    ConfigGroupFilter = eldap_utils:get_opt({ldap_gfilter, Host}, Opts,
+    ConfigGroupFilter = gen_mod:get_opt({ldap_gfilter, Host}, Opts,
                                             fun check_filter/1, <<"">>),
-    RosterFilter = eldap_utils:get_opt({ldap_rfilter, Host}, Opts,
+    RosterFilter = gen_mod:get_opt({ldap_rfilter, Host}, Opts,
                                        fun check_filter/1, <<"">>),
     SubFilter = <<"(&(", UIDAttr/binary, "=",
                  UIDAttrFormat/binary, ")(", GroupAttr/binary, "=%g))">>,
index 61db3897617a989aae1ea90d43d8636b28439105..a5cafc5e54aec965f19cbf53af04fbfd4668e53a 100644 (file)
@@ -739,7 +739,7 @@ parse_options(Host, Opts) ->
                               end, 30),
     Eldap_ID = jlib:atom_to_binary(gen_mod:get_module_proc(Host, ?PROCNAME)),
     Cfg = eldap_utils:get_config(Host, Opts),
-    UIDsTemp = eldap_utils:get_opt(
+    UIDsTemp = gen_mod:get_opt(
                  {ldap_uids, Host}, Opts,
                  fun(Us) ->
                          lists:map(
@@ -752,7 +752,7 @@ parse_options(Host, Opts) ->
                  end, [{<<"uid">>, <<"%u">>}]),
     UIDs = eldap_utils:uids_domain_subst(Host, UIDsTemp),
     SubFilter = eldap_utils:generate_subfilter(UIDs),
-    UserFilter = case eldap_utils:get_opt(
+    UserFilter = case gen_mod:get_opt(
                         {ldap_filter, Host}, Opts,
                         fun check_filter/1, <<"">>) of
                      <<"">> ->