]> granicus.if.org Git - ejabberd/commitdiff
Correct option validation
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Thu, 20 Apr 2017 15:55:16 +0000 (18:55 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Thu, 20 Apr 2017 15:55:16 +0000 (18:55 +0300)
src/mod_caps.erl
src/mod_mam.erl

index ee28fd5f37ec7ffeaf095eaffd429e0d19700fba..56eaf5f4fa7a13c1782b6c6cc0f79891700fd036 100644 (file)
@@ -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;
index 1348869889a561a68e801c85eec513eacd1bd4c9..5a61df3274b481f2cd64b44776fdc92c12834791 100644 (file)
@@ -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].