diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 9af58a080..92f2a3bdc 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -490,8 +490,8 @@ handle_send(Pkt, Result, #{lserver := LServer} = State) -> ejabberd_hooks:run_fold(c2s_handle_send, LServer, State, [Pkt, Result]). init([State, Opts]) -> - Access = gen_mod:get_opt(access, Opts, all), - Shaper = gen_mod:get_opt(shaper, Opts, none), + Access = proplists:get_value(access, Opts, all), + Shaper = proplists:get_value(shaper, Opts, none), TLSOpts1 = lists:filter( fun({certfile, _}) -> true; ({ciphers, _}) -> true; diff --git a/src/ejabberd_http.erl b/src/ejabberd_http.erl index 2dd81854e..06da10c9c 100644 --- a/src/ejabberd_http.erl +++ b/src/ejabberd_http.erl @@ -136,15 +136,15 @@ init({SockMod, Socket}, Opts) -> true -> [{[], ejabberd_xmlrpc}]; false -> [] end, - DefinedHandlers = gen_mod:get_opt(request_handlers, Opts, []), + DefinedHandlers = proplists:get_value(request_handlers, Opts, []), RequestHandlers = DefinedHandlers ++ Captcha ++ Register ++ Admin ++ Bind ++ XMLRPC, ?DEBUG("S: ~p~n", [RequestHandlers]), - DefaultHost = gen_mod:get_opt(default_host, Opts, undefined), + DefaultHost = proplists:get_value(default_host, Opts), {ok, RE} = re:compile(<<"^(?:\\[(.*?)\\]|(.*?))(?::(\\d+))?$">>), - CustomHeaders = gen_mod:get_opt(custom_headers, Opts, []), + CustomHeaders = proplists:get_value(custom_headers, Opts, []), ?INFO_MSG("started: ~p", [{SockMod1, Socket1}]), State = #state{sockmod = SockMod1, diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl index 90e0feb27..c215557c4 100644 --- a/src/ejabberd_s2s_in.erl +++ b/src/ejabberd_s2s_in.erl @@ -244,7 +244,7 @@ handle_send(Pkt, Result, #{server_host := LServer} = State) -> State, [Pkt, Result]). init([State, Opts]) -> - Shaper = gen_mod:get_opt(shaper, Opts, none), + Shaper = proplists:get_value(shaper, Opts, none), TLSOpts1 = lists:filter( fun({certfile, _}) -> true; ({ciphers, _}) -> true; diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl index 6fae16940..9829d6b6c 100644 --- a/src/ejabberd_service.erl +++ b/src/ejabberd_service.erl @@ -79,15 +79,15 @@ tls_options(#{tls_options := TLSOptions}) -> TLSOptions. init([State, Opts]) -> - Access = gen_mod:get_opt(access, Opts, all), - Shaper = gen_mod:get_opt(shaper_rule, Opts, none), - GlobalPassword = gen_mod:get_opt(password, Opts, random_password()), - HostOpts = gen_mod:get_opt(hosts, Opts, [{global, GlobalPassword}]), + Access = proplists:get_value(access, Opts, all), + Shaper = proplists:get_value(shaper_rule, Opts, none), + GlobalPassword = proplists:get_value(password, Opts, random_password()), + HostOpts = proplists:get_value(hosts, Opts, [{global, GlobalPassword}]), HostOpts1 = lists:map( fun({Host, undefined}) -> {Host, GlobalPassword}; ({Host, Password}) -> {Host, Password} end, HostOpts), - CheckFrom = gen_mod:get_opt(check_from, Opts, true), + CheckFrom = proplists:get_value(check_from, Opts, true), TLSOpts1 = lists:filter( fun({certfile, _}) -> true; ({ciphers, _}) -> true; diff --git a/src/ejabberd_stun.erl b/src/ejabberd_stun.erl index c45caf686..47a6b89de 100644 --- a/src/ejabberd_stun.erl +++ b/src/ejabberd_stun.erl @@ -73,9 +73,9 @@ prepare_turn_opts(Opts, _UseTurn = true) -> ok end, AuthFun = fun ejabberd_auth:get_password_s/2, - Shaper = gen_mod:get_opt(shaper, Opts, none), - AuthType = gen_mod:get_opt(auth_type, Opts, user), - Realm = case gen_mod:get_opt(auth_realm, Opts) of + Shaper = proplists:get_value(shaper, Opts, none), + AuthType = proplists:get_value(auth_type, Opts, user), + Realm = case proplists:get_value(auth_realm, Opts) of undefined when AuthType == user -> if NumberOfMyHosts > 1 -> ?WARNING_MSG("you have several virtual " diff --git a/src/ejabberd_xmlrpc.erl b/src/ejabberd_xmlrpc.erl index 41695cb10..213aef7aa 100644 --- a/src/ejabberd_xmlrpc.erl +++ b/src/ejabberd_xmlrpc.erl @@ -197,7 +197,7 @@ socket_type() -> raw. %% HTTP interface %% ----------------------------- process(_, #request{method = 'POST', data = Data, opts = Opts, ip = {IP, _}}) -> - AccessCommands = gen_mod:get_opt(access_commands, Opts), + AccessCommands = proplists:get_value(access_commands, Opts), GetAuth = true, State = #state{access_commands = AccessCommands, get_auth = GetAuth, ip = IP}, case fxml_stream:parse_element(Data) of diff --git a/src/eldap.erl b/src/eldap.erl index 9763e2a79..3c565e71d 100644 --- a/src/eldap.erl +++ b/src/eldap.erl @@ -565,7 +565,7 @@ get_handle(Name) when is_binary(Name) -> %% process. %%---------------------------------------------------------------------- init([Hosts, Port, Rootdn, Passwd, Opts]) -> - Encrypt = case gen_mod:get_opt(encrypt, Opts) of + Encrypt = case proplists:get_value(encrypt, Opts) of tls -> tls; _ -> none end, @@ -577,19 +577,19 @@ init([Hosts, Port, Rootdn, Passwd, Opts]) -> end; PT -> PT end, - CacertOpts = case gen_mod:get_opt(tls_cacertfile, Opts) of + CacertOpts = case proplists:get_value(tls_cacertfile, Opts) of undefined -> []; Path -> [{cacertfile, Path}] end, - DepthOpts = case gen_mod:get_opt(tls_depth, Opts) of + DepthOpts = case proplists:get_value(tls_depth, Opts) of undefined -> []; Depth -> [{depth, Depth}] end, - Verify = gen_mod:get_opt(tls_verify, Opts, false), + Verify = proplists:get_value(tls_verify, Opts, false), TLSOpts = if (Verify == hard orelse Verify == soft) andalso CacertOpts == [] -> ?WARNING_MSG("TLS verification is enabled but no CA " diff --git a/src/eldap_utils.erl b/src/eldap_utils.erl index 52671061d..3704d2ce5 100644 --- a/src/eldap_utils.erl +++ b/src/eldap_utils.erl @@ -173,25 +173,25 @@ uids_domain_subst(Host, UIDs) -> -spec get_config(binary(), list()) -> eldap_config(). get_config(Host, Opts) -> - Servers = gen_mod:get_opt({ldap_servers, Host}, Opts, [<<"localhost">>]), - Backups = gen_mod:get_opt({ldap_backups, Host}, Opts, []), - Encrypt = gen_mod:get_opt({ldap_encrypt, Host}, Opts, none), - TLSVerify = gen_mod:get_opt({ldap_tls_verify, Host}, Opts, false), - TLSCAFile = gen_mod:get_opt({ldap_tls_cacertfile, Host}, Opts), - TLSDepth = gen_mod:get_opt({ldap_tls_depth, Host}, Opts), - Port = gen_mod:get_opt({ldap_port, Host}, Opts, - case Encrypt of - tls -> ?LDAPS_PORT; - starttls -> ?LDAP_PORT; - _ -> ?LDAP_PORT - end), - RootDN = gen_mod:get_opt({ldap_rootdn, Host}, Opts, <<"">>), - Password = gen_mod:get_opt({ldap_password, Host}, Opts, <<"">>), - Base = gen_mod:get_opt({ldap_base, Host}, Opts, <<"">>), - OldDerefAliases = gen_mod:get_opt({deref_aliases, Host}, Opts, unspecified), + Servers = get_opt(ldap_servers, Host, Opts, [<<"localhost">>]), + Backups = get_opt(ldap_backups, Host, Opts, []), + Encrypt = get_opt(ldap_encrypt, Host, Opts, none), + TLSVerify = get_opt(ldap_tls_verify, Host, Opts, false), + TLSCAFile = get_opt(ldap_tls_cacertfile, Host, Opts), + TLSDepth = get_opt(ldap_tls_depth, Host, Opts), + Port = get_opt(ldap_port, Host, Opts, + case Encrypt of + tls -> ?LDAPS_PORT; + starttls -> ?LDAP_PORT; + _ -> ?LDAP_PORT + end), + RootDN = get_opt(ldap_rootdn, Host, Opts, <<"">>), + Password = get_opt(ldap_password, Host, Opts, <<"">>), + Base = get_opt(ldap_base, Host, Opts, <<"">>), + OldDerefAliases = get_opt(deref_aliases, Host, Opts, unspecified), DerefAliases = if OldDerefAliases == unspecified -> - gen_mod:get_opt({ldap_deref_aliases, Host}, Opts, never); + get_opt(ldap_deref_aliases, Host, Opts, never); true -> ?WARNING_MSG("Option 'deref_aliases' is deprecated. " "The option is still supported " @@ -211,6 +211,15 @@ get_config(Host, Opts) -> base = Base, deref_aliases = DerefAliases}. +get_opt(Opt, Host, Opts) -> + get_opt(Opt, Host, Opts, undefined). + +get_opt(Opt, Host, Opts, Default) -> + case proplists:get_value(Opt, Opts) of + undefined -> ejabberd_config:get_option({Opt, Host}, Default); + Value -> Value + end. + %%---------------------------------------- %% Borrowed from asn1rt_ber_bin_v2.erl %%----------------------------------------