From 5444475b1dddd1018bb263b6931c4a0741a66732 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 20 Apr 2017 18:55:16 +0300 Subject: [PATCH] Correct option validation --- src/mod_caps.erl | 4 +++- src/mod_mam.erl | 14 ++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/mod_caps.erl b/src/mod_caps.erl index ee28fd5f3..56eaf5f4f 100644 --- a/src/mod_caps.erl +++ b/src/mod_caps.erl @@ -537,7 +537,9 @@ import_next(LServer, DBType, NodePair) -> import_next(LServer, DBType, ets:next(caps_features_tmp, NodePair)). mod_opt_type(O) when O == cache_life_time; O == cache_size -> - fun (I) when is_integer(I), I > 0 -> I end; + fun (I) when is_integer(I), I > 0 -> I; + (infinity) -> infinity + end; mod_opt_type(O) when O == use_cache; O == cache_missed -> fun (B) when is_boolean(B) -> B end; mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end; diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 134886988..5a61df327 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -1041,10 +1041,12 @@ get_commands_spec() -> mod_opt_type(assume_mam_usage) -> fun (B) when is_boolean(B) -> B end; -mod_opt_type(cache_life_time) -> - fun (I) when is_integer(I), I > 0 -> I end; -mod_opt_type(cache_size) -> - fun (I) when is_integer(I), I > 0 -> I end; +mod_opt_type(O) when O == cache_life_time; O == cache_size -> + fun (I) when is_integer(I), I > 0 -> I; + (infinity) -> infinity + end; +mod_opt_type(O) when O == use_cache; O == cache_missed -> + fun (B) when is_boolean(B) -> B end; mod_opt_type(db_type) -> fun(T) -> ejabberd_config:v_db(?MODULE, T) end; mod_opt_type(default) -> fun (always) -> always; @@ -1055,5 +1057,5 @@ mod_opt_type(iqdisc) -> fun gen_iq_handler:check_type/1; mod_opt_type(request_activates_archiving) -> fun (B) when is_boolean(B) -> B end; mod_opt_type(_) -> - [assume_mam_usage, cache_life_time, cache_size, db_type, default, iqdisc, - request_activates_archiving]. + [assume_mam_usage, cache_life_time, cache_size, use_cache, cache_missed, + db_type, default, iqdisc, request_activates_archiving].