-export([acl/0, shaper/0, url_or_file/0, lang/0]).
-export([pem/0, queue_type/0]).
-export([jid/0, user/0, domain/0, resource/0]).
--export([db_type/1, ldap_filter/0, well_known/2]).
+-export([db_type/1, ldap_filter/0]).
+-export([host/0, hosts/0]).
-ifdef(SIP).
-export([sip_uri/0]).
-endif.
end
end).
-well_known(queue_type, _) ->
- queue_type();
-well_known(db_type, M) ->
- db_type(M);
-well_known(ram_db_type, M) ->
- db_type(M);
-well_known(cache_life_time, _) ->
- pos_int(infinity);
-well_known(cache_size, _) ->
- pos_int(infinity);
-well_known(use_cache, _) ->
- bool();
-well_known(cache_missed, _) ->
- bool();
-well_known(host, _) ->
- host();
-well_known(hosts, _) ->
- list(host(), [unique]).
-
-ifdef(SIP).
sip_uri() ->
and_then(
end
end.
+-spec hosts() -> yconf:validator([binary()]).
+hosts() ->
+ list(host(), [unique]).
+
%%%===================================================================
%%% Internal functions
%%%===================================================================
cache_opts() ->
MaxSize = ejabberd_option:auth_cache_size(),
CacheMissed = ejabberd_option:auth_cache_missed(),
- LifeTime = case ejabberd_option:auth_cache_life_time() of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = ejabberd_option:auth_cache_life_time(),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(map()) -> {True :: [module()], False :: [module()]}.
cache_opts() ->
MaxSize = ejabberd_option:oauth_cache_size(),
CacheMissed = ejabberd_option:oauth_cache_missed(),
- LifeTime = case ejabberd_option:oauth_cache_life_time() of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = ejabberd_option:oauth_cache_life_time(),
[{max_size, MaxSize}, {life_time, LifeTime}, {cache_missed, CacheMissed}].
expire() ->
econf:enum(ejabberd_option:hosts())),
validator());
opt_type(auth_cache_life_time) ->
- econf:pos_int(infinity);
+ econf:timeout(second, infinity);
opt_type(auth_cache_missed) ->
econf:bool();
opt_type(auth_cache_size) ->
opt_type(ca_file) ->
econf:pem();
opt_type(cache_life_time) ->
- econf:pos_int(infinity);
+ econf:timeout(second, infinity);
opt_type(cache_missed) ->
econf:bool();
opt_type(cache_size) ->
opt_type(oauth_access) ->
econf:acl();
opt_type(oauth_cache_life_time) ->
- econf:pos_int(infinity);
+ econf:timeout(second, infinity);
opt_type(oauth_cache_missed) ->
econf:bool();
opt_type(oauth_cache_size) ->
opt_type(route_subdomains) ->
econf:enum([s2s, local]);
opt_type(router_cache_life_time) ->
- econf:pos_int(infinity);
+ econf:timeout(second, infinity);
opt_type(router_cache_missed) ->
econf:bool();
opt_type(router_cache_size) ->
opt_type(shaper_rules) ->
ejabberd_shaper:validator(shaper_rules);
opt_type(sm_cache_life_time) ->
- econf:pos_int(infinity);
+ econf:timeout(second, infinity);
opt_type(sm_cache_missed) ->
econf:bool();
opt_type(sm_cache_size) ->
[%% Top-priority options
hosts,
{loglevel, 4},
- {cache_life_time, 3600},
+ {cache_life_time, timer:seconds(3600)},
{cache_missed, true},
{cache_size, 1000},
{use_cache, true},
cache_opts() ->
MaxSize = ejabberd_option:router_cache_size(),
CacheMissed = ejabberd_option:router_cache_missed(),
- LifeTime = case ejabberd_option:router_cache_life_time() of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = ejabberd_option:router_cache_life_time(),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec clean_cache(node()) -> non_neg_integer().
cache_opts() ->
MaxSize = ejabberd_option:sm_cache_size(),
CacheMissed = ejabberd_option:sm_cache_missed(),
- LifeTime = case ejabberd_option:sm_cache_life_time() of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = ejabberd_option:sm_cache_life_time(),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec clean_cache(node()) -> non_neg_integer().
cache_opts(Opts) ->
MaxSize = mod_announce_opt:cache_size(Opts),
CacheMissed = mod_announce_opt:cache_missed(Opts),
- LifeTime = case mod_announce_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_announce_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
mod_opt_type(access) ->
econf:acl();
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{access, none},
mod_opt_type(prebind) ->
econf:bool();
mod_opt_type(queue_type) ->
- econf:well_known(queue_type, ?MODULE);
+ econf:queue_type();
mod_opt_type(ram_db_type) ->
- econf:well_known(ram_db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
-spec mod_options(binary()) -> [{json, boolean()} |
{atom(), term()}].
cache_opts(Host) ->
MaxSize = mod_bosh_opt:cache_size(Host),
CacheMissed = mod_bosh_opt:cache_missed(Host),
- LifeTime = case mod_bosh_opt:cache_life_time(Host) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_bosh_opt:cache_life_time(Host),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec clean_cache(node()) -> non_neg_integer().
cache_opts(Opts) ->
MaxSize = mod_caps_opt:cache_size(Opts),
CacheMissed = mod_caps_opt:cache_missed(Opts),
- LifeTime = case mod_caps_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_caps_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
export(LServer) ->
import_next(LServer, DBType, ets:next(caps_features_tmp, NodePair)).
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{db_type, ejabberd_config:default_db(Host, ?MODULE)},
mod_opt_type(external_secret) ->
econf:binary();
mod_opt_type(host) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(hosts) ->
- econf:well_known(hosts, ?MODULE).
+ econf:hosts().
-spec mod_options(binary()) -> [{thumbnail, boolean()} |
{atom(), any()}].
cache_opts(Opts) ->
MaxSize = mod_last_opt:cache_size(Opts),
CacheMissed = mod_last_opt:cache_missed(Opts),
- LifeTime = case mod_last_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_last_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
[].
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{db_type, ejabberd_config:default_db(Host, ?MODULE)},
cache_opts(Opts) ->
MaxSize = mod_mam_opt:cache_size(Opts),
CacheMissed = mod_mam_opt:cache_missed(Opts),
- LifeTime = case mod_mam_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_mam_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {life_time, LifeTime}, {cache_missed, CacheMissed}].
stop(Host) ->
mod_opt_type(access_preferences) ->
econf:acl();
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{assume_mam_usage, false},
mod_opt_type(name) ->
econf:binary();
mod_opt_type(host) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(hosts) ->
- econf:well_known(hosts, ?MODULE);
+ econf:hosts();
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE).
+ econf:db_type(?MODULE).
mod_options(Host) ->
[{access_create, all},
[].
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{db_type, ejabberd_config:default_db(Host, ?MODULE)},
cache_opts(Opts) ->
MaxSize = mod_mix_pam_opt:cache_size(Opts),
CacheMissed = mod_mix_pam_opt:cache_missed(Opts),
- LifeTime = case mod_mix_pam_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_mix_pam_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
mod_opt_type(access_publish) ->
topic_access_validator();
mod_opt_type(queue_type) ->
- econf:well_known(queue_type, ?MODULE);
+ econf:queue_type();
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(ram_db_type) ->
- econf:well_known(ram_db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
listen_opt_type(tls_verify) ->
econf:bool();
cache_opts(Opts) ->
MaxSize = mod_mqtt_opt:cache_size(Opts),
CacheMissed = mod_mqtt_opt:cache_missed(Opts),
- LifeTime = case mod_mqtt_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_mqtt_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
public_list => econf:bool(),
title => econf:binary()});
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(ram_db_type) ->
- econf:well_known(ram_db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(host) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(hosts) ->
- econf:well_known(hosts, ?MODULE);
+ econf:hosts();
mod_opt_type(queue_type) ->
- econf:well_known(queue_type, ?MODULE).
+ econf:queue_type().
mod_options(Host) ->
[{access, all},
#{message => econf:non_neg_int(infinite),
presence => econf:non_neg_int(infinite)})});
mod_opt_type(host) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(hosts) ->
- econf:well_known(hosts, ?MODULE).
+ econf:hosts().
mod_options(Host) ->
[{access, all},
case mod_offline_opt:use_mam_for_storage(Opts) of
true ->
MaxSize = mod_offline_opt:cache_size(Opts),
- LifeTime = case mod_offline_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_offline_opt:cache_life_time(Opts),
COpts = [{max_size, MaxSize}, {cache_missed, false}, {life_time, LifeTime}],
ets_cache:new(?EMPTY_SPOOL_CACHE, COpts);
false ->
unless_chat_state,
econf:bool());
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{db_type, ejabberd_config:default_db(Host, ?MODULE)},
State#{privacy_active_list => none};
_ ->
case get_user_list(U, S, Active) of
- {ok, _} ->
+ {ok, _} ->
?DEBUG("Setting active privacy list ~p for user ~p", [Active, jid:encode(To)]),
State#{privacy_active_list => Active};
_ -> State % unknown privacy list name
end,
{NewIQ, update_c2s_state_with_privacy_list(IQ, State)};
-% for client with no active privacy list, see if there is
+% for client with no active privacy list, see if there is
% one about to be activated in this packet and update client state
user_send_packet({Packet, State}) ->
{Packet, update_c2s_state_with_privacy_list(Packet, State)}.
cache_opts(Opts) ->
MaxSize = mod_privacy_opt:cache_size(Opts),
CacheMissed = mod_privacy_opt:cache_missed(Opts),
- LifeTime = case mod_privacy_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_privacy_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
[].
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{db_type, ejabberd_config:default_db(Host, ?MODULE)},
[{mod_pubsub, soft}].
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{db_type, ejabberd_config:default_db(Host, ?MODULE)},
cache_opts(Opts) ->
MaxSize = mod_private_opt:cache_size(Opts),
CacheMissed = mod_private_opt:cache_missed(Opts),
- LifeTime = case mod_private_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_private_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
mod_opt_type(access) ->
econf:acl();
mod_opt_type(hostname) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(ip) ->
econf:ip();
mod_opt_type(name) ->
mod_opt_type(max_connections) ->
econf:pos_int(infinity);
mod_opt_type(host) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(hosts) ->
- econf:well_known(hosts, ?MODULE);
+ econf:hosts();
mod_opt_type(ram_db_type) ->
- econf:well_known(ram_db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(server_host) ->
econf:binary();
mod_opt_type(auth_type) ->
mod_opt_type(plugins) ->
econf:list(econf:binary());
mod_opt_type(host) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(hosts) ->
- econf:well_known(hosts, ?MODULE);
+ econf:hosts();
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE).
+ econf:db_type(?MODULE).
mod_options(Host) ->
[{access_createnode, all},
econf:bool(),
econf:binary());
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
-spec mod_options(binary()) -> [{atom(), any()}].
mod_options(Host) ->
cache_opts(Opts) ->
MaxSize = mod_push_opt:cache_size(Opts),
CacheMissed = mod_push_opt:cache_missed(Opts),
- LifeTime = case mod_push_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_push_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
cache_opts(Opts) ->
MaxSize = mod_roster_opt:cache_size(Opts),
CacheMissed = mod_roster_opt:cache_missed(Opts),
- LifeTime = case mod_roster_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_roster_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary(), roster | roster_version) -> boolean().
mod_opt_type(versioning) ->
econf:bool();
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{access, all},
Mod:import(LServer, Tab, L).
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE).
+ econf:db_type(?MODULE).
mod_options(Host) ->
[{db_type, ejabberd_config:default_db(Host, ?MODULE)}].
cache_opts(_Host, Opts) ->
MaxSize = mod_shared_roster_ldap_opt:cache_size(Opts),
CacheMissed = mod_shared_roster_ldap_opt:cache_missed(Opts),
- LifeTime = case mod_shared_roster_ldap_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_shared_roster_ldap_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
mod_opt_type(ldap_auth_check) ->
fun(U) -> {U, <<"%u">>} end)),
econf:map(econf:binary(), econf:binary(), [unique]));
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
-spec mod_options(binary()) -> [{ldap_uids, [{binary(), binary()}]} |
{atom(), any()}].
if_offline,
econf:bool());
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(queue_type) ->
- econf:well_known(queue_type, ?MODULE).
+ econf:queue_type().
mod_options(Host) ->
[{max_ack_queue, 5000},
cache_opts(_Host, Opts) ->
MaxSize = mod_vcard_opt:cache_size(Opts),
CacheMissed = mod_vcard_opt:cache_missed(Opts),
- LifeTime = case mod_vcard_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_vcard_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(module(), binary()) -> boolean().
mod_opt_type(search) ->
econf:bool();
mod_opt_type(host) ->
- econf:well_known(host, ?MODULE);
+ econf:host();
mod_opt_type(hosts) ->
- econf:well_known(hosts, ?MODULE);
+ econf:hosts();
mod_opt_type(db_type) ->
- econf:well_known(db_type, ?MODULE);
+ econf:db_type(?MODULE);
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{allow_return_all, false},
cache_opts(Opts) ->
MaxSize = mod_vcard_xupdate_opt:cache_size(Opts),
CacheMissed = mod_vcard_xupdate_opt:cache_missed(Opts),
- LifeTime = case mod_vcard_xupdate_opt:cache_life_time(Opts) of
- infinity -> infinity;
- I -> timer:seconds(I)
- end,
+ LifeTime = mod_vcard_xupdate_opt:cache_life_time(Opts),
[{max_size, MaxSize}, {cache_missed, CacheMissed}, {life_time, LifeTime}].
-spec use_cache(binary()) -> boolean().
%% Options
%%====================================================================
mod_opt_type(use_cache) ->
- econf:well_known(use_cache, ?MODULE);
+ econf:bool();
mod_opt_type(cache_size) ->
- econf:well_known(cache_size, ?MODULE);
+ econf:pos_int(infinity);
mod_opt_type(cache_missed) ->
- econf:well_known(cache_missed, ?MODULE);
+ econf:bool();
mod_opt_type(cache_life_time) ->
- econf:well_known(cache_life_time, ?MODULE).
+ econf:timeout(second, infinity).
mod_options(Host) ->
[{use_cache, ejabberd_option:use_cache(Host)},
erl_types:t_sup([Spec1, Spec2]);
spec(and_then, 2, [_, F], Mod) ->
spec(Mod, F);
-spec(well_known, 2, [Form, _], Mod) ->
- case erl_syntax:atom_value(Form) of
- queue_type -> spec(queue_type, 0, [], Mod);
- db_type -> erl_types:t_atom();
- ram_db_type -> erl_types:t_atom();
- cache_life_time -> spec(pos_int, 1, [erl_syntax:atom(infinity)], Mod);
- cache_size -> spec(pos_int, 1, [erl_syntax:atom(infinity)], Mod);
- use_cache -> spec(bool, 0, [], Mod);
- cache_missed -> spec(bool, 0, [], Mod);
- host -> erl_types:t_binary();
- hosts -> erl_types:t_list(erl_types:t_binary())
- end;
+spec(host, 0, _, _) ->
+ erl_types:t_binary();
+spec(hosts, 0, _, _) ->
+ erl_types:t_list(erl_types:t_binary());
spec(options, A, [Form|OForm], Mod) when A == 1; A == 2 ->
case erl_syntax:type(Form) of
map_expr ->