diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2015-06-29 22:50:15 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2015-06-29 22:50:34 +0300 |
commit | 3c12d1a9603af01e57ba45ecef498ec8f1e7a0c6 (patch) | |
tree | 8534afa62ad936bea3efb4e63beb144461b228f7 /src | |
parent | Merge pull request #620 from weiss/omit-non-anon-msg (diff) |
Do not rely on behaviour info when doing config validation
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_config.erl | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl index d049e411..43e4154d 100644 --- a/src/ejabberd_config.erl +++ b/src/ejabberd_config.erl @@ -718,16 +718,13 @@ get_modules_with_options() -> {ok, Mods} = application:get_key(ejabberd, modules), lists:foldl( fun(Mod, D) -> - Attrs = Mod:module_info(attributes), - Behavs = proplists:get_value(behaviour, Attrs, []), - case lists:member(ejabberd_config, Behavs) or (Mod == ?MODULE) of - true -> - Opts = Mod:opt_type(''), + case catch Mod:opt_type('') of + Opts when is_list(Opts) -> lists:foldl( fun(Opt, Acc) -> dict:append(Opt, Mod, Acc) end, D, Opts); - false -> + {'EXIT', {undef, _}} -> D end end, dict:new(), [?MODULE|Mods]). |