diff options
Diffstat (limited to 'src/ejabberd_app.erl')
-rw-r--r-- | src/ejabberd_app.erl | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl index daf8919a6..46fbf81dc 100644 --- a/src/ejabberd_app.erl +++ b/src/ejabberd_app.erl @@ -24,11 +24,14 @@ %%%---------------------------------------------------------------------- -module(ejabberd_app). + +-behaviour(ejabberd_config). -author('alexey@process-one.net'). -behaviour(application). --export([start_modules/0,start/2, prep_stop/1, stop/1, init/0]). +-export([start_modules/0, start/2, prep_stop/1, stop/1, + init/0, opt_type/1]). -include("ejabberd.hrl"). -include("logger.hrl"). @@ -248,3 +251,16 @@ start_apps() -> ejabberd:start_app(p1_stringprep), ejabberd:start_app(p1_zlib), ejabberd:start_app(p1_cache_tab). + +opt_type(cluster_nodes) -> + fun (Ns) -> true = lists:all(fun is_atom/1, Ns), Ns end; +opt_type(loglevel) -> + fun (P) when P >= 0, P =< 5 -> P end; +opt_type(modules) -> + fun (Mods) -> + lists:map(fun ({M, A}) when is_atom(M), is_list(A) -> + {M, A} + end, + Mods) + end; +opt_type(_) -> [cluster_nodes, loglevel, modules]. |