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;
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,
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;
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;
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 "
%% 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
%% 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,
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 "
-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 "
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
%%----------------------------------------